C++ 和C语言类似,也要经过编译和链接后才能运行。那么C++是如何运行的呢,C++和C的运行步骤是一样的。我们需要留意的是C++源文件的后缀,以及GCC 中的g++命令。
下图是 C/C++ 代码生成可执行文件的过程:
C++源文件的后缀
C语言源文件的后缀非常统一,在不同的编译器下都是.c。C++ 源文件的后缀则有些混乱,不同的编译器支持不同的后缀,下表是一个简单的汇总:
编译器 | 后缀 |
---|---|
Microsoft Visual C++ | cpp、cxx、cc |
GCC(GNU C++) | cpp、cxx、cc、c++、C |
Borland C++ | cpp |
UNIX | C、cc、cxx |
注意:推荐使用.cpp作为 C++ 源文件的后缀,这样更加通用和规范。
g++ 命令
把源文件的后缀设置为.cpp进行编译和运行。我们重点介绍 Linux GCC 的使用。
在C语言中,我们使用gcc命令来编译和链接C程序。例如编译单个源文件:
gcc main.c
编译多个源文件:
gcc main.c module.c
**编译C++程序时,gcc命令也可以使用,不过要增加-lstdc++选项,否则会发生链接错误。**例如编译单个源文件:
gcc main.cpp -lstdc++
编译多个源文件:
gcc main.cpp module.cpp -lstdc++
gcc命令在链接时默认使用C的库,只有添加了-lstdc++选项才会使用 C++ 的库。
不过 GCC 中还有一个g++命令,它专门用来编译 C++ 程序,广大 C++ 开发人员也都使用这个命令。g++命令和gcc命令的用法如出一辙,例如编译单个源文件:
g++ main.cpp
编译多个源文件:
g++ main.cpp module.cpp
使用-o选项可以指定可执行文件的名称:
g++ main.cpp -o demo
./demo
gcc是一个通用命令,它会根据不同的参数调用不同的编译器或链接器。