C++ 和 C 类似,都要经过编译和链接后才能运行。
下图是 C/C++ 代码生成可执行文件的过程:
C++ 源文件的后缀
C 语言源文件的后缀非常统一,在不同的编译器下都是.c
。C++ 源文件的后缀则有些混乱,不同的编译器支持不同的后缀,下表是一个简单的汇总:
编译器 | Microsoft Visual C++ | GCC(GNU C++) | Borland C++ | UNIX |
---|---|---|---|---|
后缀 | cpp、cxx、cc | cpp、cxx、cc、c++、C | cpp | C、cc、cxx |
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