C++编程中相关文件后缀
Syntax | Description |
---|---|
.a | 静态库(archive) |
.C/c/cpp等 | C++源代码 |
.h | C或C++源代码头文件 |
.o | 对象文件 |
.so | 动态库 |
单个源文件生成可执行程序
下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码:
1 /* helloworld.cpp */
2 #include <iostream>
3 int main()
4 {
5 std::cout << "hello, world" << std::endl;
6 return 0;
7 }
程序使用定义在头文件 iostream 中的 cout,向标准输出写入一个简单的字符串。该代码可用以下命令编译为可执行文件:
$ g++ helloworld.cpp
编译器 g++ 通过检查命令行中指定的文件的后缀名可识别其为 C++ 源代码文件。编译器默认的动作:编译源代码文件生成对象文件(object file),链接对象文件和 libstdc++ 库中的函数得到可执行程序。然后删除对象文件。由于命令行中未指定可执行程序的文件名,编译器采用默认的 a.out。程序可以这样来运行:
$ g++ helloworld.cpp
$ ./a.out
....输出结果
更普遍的做法是通过 -o 选项指定可执行程序的文件名。
下面的命令将产生名为 helloworld 的可执行文件:
$ g++ helloworld.cpp -lstdc++ -o helloworld
之后
$ ./helloworld
....输出结果
在大多数系统中,GCC 安装时会安装一名为 c++ 的程序。如果被安装,它和 g++ 是等同,如下例所示,用法也一致:
$ c++ helloworld.cpp -o helloworld