编译

 

g++ -MM abc.cpp  分析abc.cpp的依赖,生成如 abc.o : **.h **.h的输出,方便写Makefile

 

g++ -E -P -o abc_ext.cpp abc.cpp 将abc.cpp的include和宏进行扩展后输出到abc_ext.cpp

 

Makefile是一种以文件为基本单位,修改时间为操作判断,执行外部程序为手段的工具。

 

.PHONY : labela labelb 表示这些都是标签目标,而不是文件目标。标签目标在运行时总是运行,而文件目标需要查看修改时间。

 

Makefile把第一个目标作为工作目标,所以,Makefile总是有目标。

 

在GCC中使用预编译头文件:

g++ -o boost_pt.h.gch -x c++-header -g -Wall -I /home/zjay/Downloads/boost_1_43_0 boost_pt.h

 

选择使用静态链接库:

g++ -static hello.cpp 

 

打包静态库:

g++ -c x.cpp y.cpp

ar rcs libxy.a x.o y.o  

 

生成动态库(so是shared object的意思):

g++ -fpic -c x.cpp y.cpp

g++ -shared -o libxy.so x.o y.o

g++ -c hello.cpp

g++ -L ./ -lxy hello.o

export LD_LIBRARY_PATH=./

./a.out

 

 

输出汇编

g++ -S test.cpp 

g++ -O -S test.cpp // 加上-O,inline才起作用

函数桢栈:http://blog.csdn.net/wangmiao926/archive/2006/05/13/726890.aspx

 


 

你可能感兴趣的:(编译)