在 ARM Ubuntu 机器上使用 -fPIC 标志重新编译
在 ARM Ubuntu 机器上重建 FFmpeg 时,可能会遇到错误:
relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
此错误表明系统正在尝试将静态库与动态库链接库,这是不兼容的。要解决此问题,需要使用 -fPIC 标志重新编译有问题的库,例如 FFmpeg。
重新编译过程
可以采取以下步骤使用 -fPIC 标志重新编译库:
FFmpeg 的具体示例
对于 FFmpeg,可以使用以下命令重新编译它: -fPIC 标志:
./configure --enable-shared --disable-static make
通过添加 --enable-shared 标志,共享库将生成而不是静态的。 --disable-static 标志确保不构建静态库。
使用这些选项重建 FFmpeg 后,可以使用 make install 将重新编译的库安装到适当的系统目录中。这将使启用 PIC 的 FFmpeg 库可供其他程序链接和使用。
以上是为什么我会收到错误“创建共享对象时不能使用针对‘本地符号’的重定位 R_ARM_MOVW_ABS_NC”?的详细内容。更多信息请关注PHP中文网其他相关文章!