g++编译方法以及合并静态库


g++编译源码

一般g++的编译选项常用两种-c 和-o 。-c是源码编译但不链接,生成.o文件,-o是编译同时链接,生成可行性文件,如果不指定-o会生成默认的a.out可执行程序。假设以及存在一个main.cpp的源文件,示例如下:

1
g++ -c main.cpp
1
g++ main.cpp -o test

生成和合并静态库

生成静态库是将.o文件压缩为一个.a文件,方法如下:

1
ar crv libtest.a test.o

g++使用静态库的方法如下:

1
g++ main.cpp libtest.a -o output

说明:此处main.cpp引用libtest.a 静态库直接接在main.cpp之后就行了

生成动态库:

1
g++ test.cpp -fPIC -shared -o libtest.so

接下来讲解合并多个单独编译生成的.a静态库,思路就是先将.a拆分为.o,然后合并.o成为一个.o。假设已经存在a1.a(包含a1.o),a2.a(包含a2.o)

1
2
3
ar x a1.a
ar x a2.a
ar rc a3.a *.o

g++编译方法以及合并静态库
http://yoursite.com/2019/03/19/g++编译方法以及合并静态库/
作者
还在输入
发布于
2019年3月19日
许可协议