我已经阅读了 gcc 的手册,但我仍然无法理解 -fpic 和 -fPIC 之间的区别。有人能以非常简单明了的方式解释一下吗? 相关问题: 构建共享库时,-fPIC 意味着什么? 如果使用 gcc -fPIC 标志编译对象并在可执行文件中使用它们,有什么影响(如果有)?
我尝试按照这个指南重新安装我的 ffmpeg,但在我的 ARM Ubuntu 机器上编译使用该库的程序时,出现了以下错误:/usr/bin/ld: /usr/local/lib/libavcodec.a(amrnbdec.o): relocation R_ARM_MOVW_ABS_NC aga...
我如何使用像 objdump 这样的工具来判断一个目标文件是否是用 -fPIC 编译的?
至少在Linux和Solaris上,静态库实际上只是一堆编译好的 .o 文件放在一个大文件中。编译静态库时,通常省略 -fpic 标志,因此生成的代码是位置相关的。 现在假设我的静态库是 B。我已经构建好了它,并拥有了所生成的 .a 文件,它实际上只是所有位置相关的 .o 文件的一大堆。现在...
我阅读了这篇关于PIC的文章,似乎无论是执行文件、静态库还是共享库,始终使用PIC都是一个好选择。 那么有哪些缺点呢? 是否有例子说明何时不应该使用PIC?
我最近在尝试将一个程序编译成共享库时遇到了以下错误: ...relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC...
当我执行 make 命令时,出现了以下错误:relocation R_X86_64_32 against `vtable for Torch::MemoryDataSet' can not be used when making a shared object; recompile with...
我正在尝试在Fedora上安装支持-fPIC的GHC。由于似乎没有二进制文件支持此功能,因此我已经获取了源代码tarball。在Build.mk中,我已将快速构建类型更改为ifeq "$(BuildFlavour)" "quick" SRC_HC_OPTS = -H64m -O...