1 将多个静态库编译成动态共享库
gcc -shared -fPIC -m32 -wl,--whole-archive -ld -lb -lc -Wl,--no-whole-archive -Wl,-soname -Wl,a.so -o a.so
将-ld -lb -lc 编译成a.so动态库
-shared -fPIC 选项用于生产共享库
-m32选项用于指定编译器的类型
-Wl选项告诉编译器将后面的参数传递给链接器。
参考博文:
http://blog.sina.com.cn/s/blog_54f82cc201011op1.html
--whole-archive $(SLIBS) -Wl
--no-whole-archive -Wl
参考博文:
http://blog.csdn.net/brooknew/article/details/8463822
-soname -Wl
-soname选项指定了动态库的soname(简单共享名,Short for shared object name)
参考博文:
http://blog.csdn.net/gohome520/article/details/7259450
2 将链接文件和动态库生成可执行程序
gcc -m32 a.o b.o c.so -o d -lpthread -ldl --rdynamic
由于调用动态库c.so需要加入编译选项-ldl --rdynamic,由于涉及线程需要加入编译选项-lpthread
参考博文:
http://blog.const.net.cn/a/17158.htm
阅读(1689) | 评论(0) | 转发(0) |