use*_*745 12 executable gcc shared-libraries fpic
我正在为我正在进行的项目整理一个makefile.我在项目中有一个可执行文件和一个共享库.两者都使用一些相同的源文件,这些文件分别编译到目标文件中.为了能够在共享库中使用这些对象,我需要在gcc中使用-fPIC(位置无关代码)标志.使用可执行文件中使用的-fPIC编译对象是否有任何影响?
eph*_*ent 9
在不需要的时候编译与位置无关的代码是某些平台上的性能拖累(最值得注意的是,寄存器缺乏x86架构,因为PIC带走了一个可以在非PIC时更自由地使用的寄存器),但是应该没有任何损害效果否则.
更进一步,甚至可以创建一个-fPIE仅与位置无关的代码构建的与位置无关的可执行文件().
-fPIE
话虽这么说,libtool可以为你编译的每个源文件自动生成PIC和非PIC对象,即使在没有libtool集成的构建系统中也应该很容易做到这一点.
归档时间:
16 年,3 月 前
查看次数:
1814 次
最近记录: