_008_gcc_静态&动态库

=====================================

 

编译和运行 


   gcc -E test.c -o test.i    这里的-E表示预编译,-o表示

指定新文件的的名字

  gcc -S test.i -o  test.s    这里开始编译成汇编文件

  gcc -c test.s -o  test.o   生成二进制文件

  gcc test.o -o  testApp   链接文件

  gcc test.c -o  testApp    直接生成可执行文件

  gcc test.c *.c  -c     把所有.c生成二进制文件,静态库需要这么做

会自动生成.o后缀的文件,虽然是直接生成,但是内部会自动完成所有步骤

  gcc test.c -I   ./include -o testApP  如果头文件不在同一级目录

需要用-I来指定头文件的目录

  ./testApp    必须加./表示本文件下的testApp程序

因为testApp并没有在环境变量

  gcc test.c -I   ./include -o testApp -D DEBUG  这个DEBUG

是代表宏,指定运动一些代码用ifdef,但是不可能每个cpp文件里都包含

#define DEBUG ,而且都要去修改,所以可以在外部指定宏

  gcc test.c -I   ./include -o testApp -D DEBUG -o3

这个o3表示优化的等级

  gcc test.c -I   ./include -o testApp -D DEBUG -o3 -Wall

这个表示启用Warling警告提示

  gcc test.c -I   ./include -o testApp -D DEBUG -o3 -Wall

-g   加了-g表示再应用程序里添加了一些调试代码

静态库


   命名规则  lib+库的名字+.a   libmytest.a 那么mytest是库名字

  制作步骤1 将生成的.0文件打包, ar rcs 静态库名字 生成的所有的.o

文件.  ar是一个工具,rcs是参数, 后面2个也是参数 ,会生成一个.a的文件

  

  发布  给使用者.o和.h文件,这样使用者才能使用,发布者使用且编译的时候,gcc main.c lib/xxxx.a 要指定静态库

 

  

  

  

  

 

猜你喜欢

转载自www.cnblogs.com/huangtiandi/p/9160471.html