免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 937 | 回复: 0
打印 上一主题 下一主题

gcc编译的一些问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-20 16:54 |只看该作者 |倒序浏览

http://blog.eccn.com/u/%E9%9F%B6%E5%8D%8E%E6%BD%87%E6%BD%87/archives/2007/393.htm

我这里要强调的是我之前一直没搞明白的几个地方。

Dynamic library:

8)在实现共享库时,要将源文件编译为相对地址编码的格式。
9)Gcc选项 -fpic是实现8)中要求的选项。pic是position independent code的缩写。如:gcc -c -fpic component1.c component2.c
10)Gcc选项 -shared实现共享库的生成。利用-fpic得到的目标文件生成共享库文件:gcc -shared component1.o component2.o -o component.so
11)9)和10)两个步骤可以合并:gcc -fpic -shared component1.c component2.c -p component.so

static library:

ar负责用来生成静态库,如:ar -q libxxx.a xxx1.o xxx2.o xxx3.o,使用-q选项可以快速生成静态库,而不更新索引。所以要后事用ranlib libxxx.a来建索引。目标文件的顺序会影响调用者的行为。

Commands:

7)nm命令可以列出所有定义在目标文件、静态库和共享库中的symbols。P271
8)strip命令用于去除目标文件、静态库和共享库中的debug信息,从而是目标文件变小。P274
9)ldd命令用来读取可执行文件、共享库对其他共享库的依赖关系。一个典型用途就是找到程序所使用的共享库。
10)objdump命令用来抽取目标文件、静态库和共享库中的信息并将它们保存成为可供理解的格式。P277


Make and Autoconf:

7)Autoconf工具集的用途是帮助我们创建安装shell脚本。我们的目的是生成configure脚本,用于检查某些工程编译所需的系统模块的存在性,并且生成makefiles文件反应当前的环境状态。
8)创建安装文件脚本的步骤:
a)Determine conditional compilation
b)Create the configure.in file
c)Edit the configure.in file
d)Create makefile.in
e)Create config.h.in
f)Update your source
g)Create the installation
h)copy the Autoconf s



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11890/showart_325166.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP