先写个c++代码
vim test.cpp
#includeusing namespace std; int main(int argc,char **argv) { cout<<"This is a cppfile!"< 我们编译这个代码只需要一条命令
g++ test.cpp -o test实际是经过以下四步编译的
预编译->编译->汇编->链接1、预编译:(预处理),主要处理在源代码文件中的“#”开头的预编译指令,如宏定义,#include指令等
# -E选项指示编译器仅进行预处理 g++ -E test.cpp -o test.i2、编译:把预处理完成的文件进行一系列分析和优化,生成相应的汇编代码文件
g++ -S test.i -o test.s3、汇编:将汇编代码转变成二进制文件
g++ -c test.s -o test.o4、链接:将二进制文件链接成一个可执行文件,把分散的数据和代码收集并合并成一个单一的可加载、可执行的文件,链接可以发生在代码静态编译、程序被加载时以及程序执行时。链接过程主要工作是符号解析和重定位
g++ test.o -o test2、g++ 参数-O[n] 一般 `-O2`即可,对代码进行优化 g++ test.cpp -O2 -o test-l或-L -l #在/lib和/usr/lib和/usr/local/lib依次查找库文件 g++ -lglog test.cpp -L #自己定义位置 g++ -L/home/wfq/MyProjects -lmytest test.cpp-I #一般不用,在/usr/include g++ -I/myinclude test.cpp-W #打印警告信息 g++ -Wall test.cpp-std=c++11 #使用c++11标准 g++ -std=c++11 test.cpp-o #指定输出文件名 g++ test.cpp -o test-D #定义宏(DEBUG) g++ -DDEBUG ....



