GCC编译选项

2040阅读 0评论2014-04-08 xushanlong
分类:C/C++

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
上一篇:如何用wireshark查看txt格式的数据包?
下一篇:makefile 将一个目录下的所有C文件编译成一个静态库和一个大的链接文件