查看“Compiling Cpp”的源代码
来自Ubuntu中文
←
Compiling Cpp
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{TOCright}} ==C++ 编程中相关文件後缀== '''.a''' 静态库 (archive)<br> '''.C, .c++, .cc, .cp, .cpp, .cxx''' C++源代码(需要编译预处理)<br> '''.h''' C或者C++源代码头文件 <br> '''.ii''' C++源代码(不需编译预处理)<br> '''.o''' 对象文件 <br> '''.s''' 汇编语言代码<br> '''.so''' 动态库<br> '''<none>''' 标准C++系统头文件 ==单个源文件生成可执行程序== 下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: /* helloworld.cpp */ #include <iostream> int main(int argc,char *argv[]) { std::cout << "hello, world\n"; return(0); } 程序使用定义在头文件 iostream 中的 cout,向标准输出写入一个简单的字符串。该代码可用以下命令编译为可执行文件: $ g++ helloworld.cpp 编译器 g++ 通过检查命令行中指定的文件的后缀名可识别其为 C++ 源代码文件。编译器默认的动作:编译源代码文件生成对象文件(object file),链接对象文件和 libstdc++ 库中的函数得到可执行程序。然后删除对象文件。由于命令行中未指定可执行程序的文件名,编译器采用默认的 a.out。程序可以这样来运行: $ ./a.out hello, world 更普遍的做法是通过 -o 选项指定可执行程序的文件名。下面的命令将产生名为 helloworld 的可执行文件: $ g++ helloworld.cpp -o helloworld 在命令行中输入程序名可使之运行: $ ./helloworld hello, world 程序 g++ 是将 gcc 默认语言设为 C++ 的一个特殊的版本,链接时它自动使用 C++ 标准库而不用 C 标准库。通过遵循源码的命名规范并指定对应库的名字,用 gcc 来编译链接 C++ 程序是可行的,如下例所示: $ gcc helloworld.cpp -lstdc++ -o helloworld 选项 -l (ell) 通过添加前缀 lib 和后缀 .a 将跟随它的名字变换为库的名字 libstdc++.a。而后它在标准库路径中查找该库。gcc 的编译过程和输出文件与 g++ 是完全相同的。 在大多数系统中,GCC 安装是会安装一名为 c++ 的程序。如果被安装,它和 g++ 是等同,如下例所示,用法也一致: $ c++ helloworld.cpp -o helloworld ==多个源文件生成可执行程序== 如果多于一个的源码文件在 g++ 命令中指定,它们都将被编译并被链接成一个单一的可执行文件。下面是一个名为 speak.h 的头文件;它包含一个仅含有一个函数的类的定义: /* speak.h */ #include <iostream> class Speak { public: void sayHello(const char *); }; 下面列出的是文件 speak.cpp 的内容:包含 sayHello() 函数的函数体: /* speak.cpp */ #include "speak.h" void Speak::sayHello(const char *str) { std::cout << "Hello " << str << "\n"; } 文件 hellospeak.cpp 内是一个使用 Speak 类的程序: /* hellospeak.cpp */ #include "speak.h" int main(int argc,char *argv[]) { Speak speak; speak.sayHello("world"); return(0); } 下面这条命令将上述两个源码文件编译链接成一个单一的可执行程序: $ g++ hellospeak.cpp speak.cpp -o hellospeak ==源文件生成对象文件== ==编译预处理== ==生成汇编代码== ==创建静态库== ==创建共享库==
该页面使用的模板:
模板:Gccmorerefer
(
查看源代码
)
模板:TOCright
(
查看源代码
)
返回
Compiling Cpp
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息