Chinaunix首页 | 论坛 | 博客
  • 博客访问: 89735
  • 博文数量: 30
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-21 13:27
文章分类
文章存档

2015年(21)

2014年(1)

2013年(8)

我的朋友

分类: C/C++

2015-03-10 15:53:08

原文地址:GCC编译选项 作者:xushanlong

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) |
给主人留下些什么吧!~~