免费注册 查看新帖 |

Chinaunix

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

GCC编译参数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-04 15:23 |只看该作者 |倒序浏览

GCC编译的四个阶段:预处理(Pre-Processing)编译(Compiling)汇编(Assembling) 链接(Linking)

第一步是进行预编译,使用-E参数可以让GCC在预处理结束后停止编译过程:
#  gcc -E hello.c -o hello.i
第二步是将hello.i编译为目标代码,这可以通过使用-c参数来完成:
#  gcc -c hello.i -o hello.o
GCC默认将.i文件看成是预处理后的C语言源代码,
第三步是将生成的目标文件链接成可执行文件:
#  gcc hello.o -o hello
part2:
将这几个文件编译成一个动态库:libtest.so
$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so
-shared 该选项指定生成动态连接库(让连接器生成T类型的导出符号表,有时候也生成弱连接W类型的导出符号),不用该标志外部程序无法连接。相当于一个可执行文件。
-fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。




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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP