linux g++ 链接,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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值