583得票5回答
GCC -fPIC option

我阅读过GCC代码生成约定的选项,但无法理解“生成位置无关代码(PIC)”是什么意思。请举个例子来说明这是什么意思。

138得票3回答
构建共享库时,-fPIC是什么意思?

我知道'-fPIC'选项与解决地址和个别模块之间的独立性有关,但我不确定其确切含义。你能解释一下吗?

117得票2回答
`-fpic`和`-fPIC` gcc参数有什么区别?

我已经阅读了 gcc 的手册,但我仍然无法理解 -fpic 和 -fPIC 之间的区别。有人能以非常简单明了的方式解释一下吗? 相关问题: 构建共享库时,-fPIC 意味着什么? 如果使用 gcc -fPIC 标志编译对象并在可执行文件中使用它们,有什么影响(如果有)?

77得票9回答
如何使用-fPIC重新编译

我尝试按照这个指南重新安装我的 ffmpeg,但在我的 ARM Ubuntu 机器上编译使用该库的程序时,出现了以下错误:/usr/bin/ld: /usr/local/lib/libavcodec.a(amrnbdec.o): relocation R_ARM_MOVW_ABS_NC aga...

75得票7回答
如何使用类似objdump的工具判断一个目标文件是否使用了-fPIC参数进行编译?

我如何使用像 objdump 这样的工具来判断一个目标文件是否是用 -fPIC 编译的?

34得票3回答
链接共享库到静态库:必须对静态库进行不同于应用程序链接时的编译吗?

至少在Linux和Solaris上,静态库实际上只是一堆编译好的 .o 文件放在一个大文件中。编译静态库时,通常省略 -fpic 标志,因此生成的代码是位置相关的。 现在假设我的静态库是 B。我已经构建好了它,并拥有了所生成的 .a 文件,它实际上只是所有位置相关的 .o 文件的一大堆。现在...

27得票2回答
为什么不总是使用fpic(位置无关代码)?

我阅读了这篇关于PIC的文章,似乎无论是执行文件、静态库还是共享库,始终使用PIC都是一个好选择。 那么有哪些缺点呢? 是否有例子说明何时不应该使用PIC?

25得票3回答
为什么在64位平台上必须使用fPIC而32位平台上则不需要?

我最近在尝试将一个程序编译成共享库时遇到了以下错误: ...relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC...

23得票7回答
重新编译时加上-fPIC选项,但该选项已经在makefile中了。

当我执行 make 命令时,出现了以下错误:relocation R_X86_64_32 against `vtable for Torch::MemoryDataSet' can not be used when making a shared object; recompile with...

22得票2回答
使用-fPIC支持编译ghc

我正在尝试在Fedora上安装支持-fPIC的GHC。由于似乎没有二进制文件支持此功能,因此我已经获取了源代码tarball。在Build.mk中,我已将快速构建类型更改为ifeq "$(BuildFlavour)" "quick" SRC_HC_OPTS = -H64m -O...