linux 到共享库的链接,linux g将64位共享库代码链接到静态库

如果您的目标模块将在共享库中使用,则始终需要“位置无关代码”.它依赖于高度平台,并且会产生一些开销.

你必须在amd64上明确指定它而不是x386的原因只是它恰好是x86的默认值,而不是amd64.

另请注意,“-fpic”和“-fPIC”之间的区别:

-fpic

Generate position-independent code (PIC) suitable for use in a

shared library,if supported for the target machine. Such code

accesses all constant addresses through a global offset table

(GOT). The dynamic loader resolves the GOT entries when the pro-

gram starts (the dynamic loader is not part of GCC; it is part

of the operating system). If the GOT size for the linked execu-

table exceeds a machine-specific maximum size,you get an error

message from the linker indicating that -fpic does not work; in

that case,recompile with -fPIC instead. (These maximums are 8k

on the SPARC and 32k on the m68k and RS/6000. The 386 has no

such limit.)

Position-independent code requires special support,and there

fore works only on certain machines. For the 386,GCC supports

PIC for System V but not for the Sun 386i. Code generated for

the IBM RS/6000 is always position-independent.

When this flag is set,the macros __pic__ and __PIC__ are defined to 1.

-fPIC

If supported for the target machine,emit position-independent

code,suitable for dynamic linking and avoiding any limit on the

size of the global offset table. This option makes a difference

on the m68k,PowerPC and SPARC.

Position-independent code requires special support,and therefore

works only on certain machines.

When this flag is set,the macros __pic__ and __PIC__ are defined to 2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值