gpt4 book ai didi

linux - -fPIC 是否隐含在现代平台上

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:03:44 25 4
gpt4 key购买 nike

我想检查共享库是否使用 -fPIC 标志编译。有哪些可能的方法(在 Linux 上,x86_64)检查这个?

-fPIC 是否隐含(从而使检查变得多余?)

最佳答案

是的,GCC 不允许您在没有 -fPIC 的情况下链接共享库,因此您无需检查任何内容:

$ gcc tmp.c -shared
/usr/bin/ld: /tmp/ccqQVR9Y.o: relocation R_X86_64_32 against `compare' can not be used when making a shared object; recompile with -fPIC
/tmp/ccqQVR9Y.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
$ gcc tmp.c -shared -fPIC

编辑

从技术上讲,如果没有-fPIC 函数调用其他函数或访问全局变量,您可以编译共享库。但在那种情况下,生成的代码将与 -fPIC 相同。

关于linux - -fPIC 是否隐含在现代平台上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50131568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com