您的位置:首页 > 其它

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: