gcc -fPIC
2014-04-07 16:00
155 查看
1
-fPIC其实就是gcc编译器的一个编译option,一般用于编译共享库虽然我们总是用fPIC来生成so,也从来不用fPIC来生成a.
fPIC与动态链接可以说基本没有关系,libc.so一样可以不用fPIC编译,只是这样的so必须要在加载到用户程序的地址空间时重定向所有表目.
2
不用fPIC编译so并不总是不好.如果你满足以下4个需求/条件:
1.该库可能需要经常更新
2.该库需要非常高的效率(尤其是有很多全局量的使用时)
3.该库并不很大.
4.该库基本不需要被多个应用程序共享
3
从GCC来看,shared应该是包含fPIC选项的,但似乎不是所以系统都支持,所以最好显式加上fPIC选项。参见如下`-shared'
Produce a shared object which can then be linked with other
objects to form an executable. Not all systems support this
option. For predictable results, you must also specify the same
set of options that were used to generate code (`-fpic', `-fPIC',
or model suboptions) when you specify this option.(1)
相关文章推荐
- SelectStockObject与SelectObject
- C++虚函数表解析
- RedHat Linux 5.5 x64系统NTP时钟服务器架设过程
- Android程序运行中动态加载Lib的方法
- Source Insight 的应用技巧
- 《算法导论》笔记 第6章 6.5优先级队列
- 《算法导论》笔记 第6章 6.5优先级队列
- HDU 2058 The sum problem
- linux常用命令的英文单词缩写
- 【人文】直言直语,伤人伤己
- 宋丹丹被曝注重养生 每餐必吃黑木耳(图)
- CentOS 如何删除旧的内核方法介绍
- struts之修改fielderror修改样式
- Java基本类型与byte数组之间相互转换
- 一键安装 kX3552 & ProFX312 & UFX52 程序
- 网站建设选择数据库的标准
- 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C
- java中内存溢出情况
- 九九乘法表
- PHP加锁解锁操作