我在 SO 看到了很多问题,询问为什么不是所有代码都编译为 PIC或者为什么我们不能总是使用-fPIC 。 但是,所有答案都没有解释当您的对象使用-fPIC编译但您将它们链接到不是PIE(位置无关的可执行文件)的可执行文件时会发生什么。 根据我的理解(使用一些小示例并使用readelf反汇编/检查 ...
我在 SO 看到了很多问题,询问为什么不是所有代码都编译为 PIC或者为什么我们不能总是使用-fPIC 。 但是,所有答案都没有解释当您的对象使用-fPIC编译但您将它们链接到不是PIE(位置无关的可执行文件)的可执行文件时会发生什么。 根据我的理解(使用一些小示例并使用readelf反汇编/检查 ...
我尝试使用源代码构建 pycolmap,但出现以下错误。 根据谷歌搜索结果,我在 CMAKELISTS.txt 中添加了这些 CXX_FLAGS,但它仍然不起作用。 任何人都知道怎么了? 我想也许我应该清理一些以前的构建文件,但我不知道在运行时该怎么做 ...
我在我们的代码中使用了一个(静态)外部库(zmq.a),并且在我们程序的编译过程中它说 ../libzmq.a(src_libzmd 制作共享对象时;用-fPIC重新编译但是,如果我使用 -fPIC 编译库本身,我们的代码现在可以编译,但我在启动时收到错误:“undefined symbol sta ...
错误如下: 当我添加-fPIC或-fPIE时,没有任何变化。 我知道gfx.o库可以工作,因为它以前可以工作,并且当我在我的服务器上输入 ssh 时它仍然可以工作。 制作文件如下: 我尝试在 makefile 中使用-fPIE和-fPIC 。我还尝试卸载并重新安装 gcc 和 binutills,但 ...
我想用 NDK 编译 CPython,无论我把 -fPIC 放在 CFLAGS 中,我都会得到 fPIC 错误。 ld:错误:重定位 R_ARM_REL32 不能用于符号 PyBool_Type; 使用 -fPIC 重新编译我有带有 Autoconf 配置脚本和 NDK 的 Python 源。 我 ...
当我编译一段没有 fPIC 的代码然后编写以下命令时。 我收到这个错误。 如何解决这个问题? ...
我正在编译一个使用 log4cxx 库的共享库(.so)。 我收到以下错误: 你有什么想法吗? 我应该使用一些特殊选项重新编译 log4cxx 吗? ...
我在 Ubuntu 20 焦点上,我正在尝试将Blender 构建为 Python 模块。 构建说明的最后一步是我遇到问题的地方。 我的建筑达到 100%,但随后失败并显示以下输出: 我试过sudo make bpy -fPIC ,但这会引发另一个错误: 我认为-fPIC错误是因为我很愚 ...
我正在建立一个共享库。 我只需要一个 function 就可以公开。 共享库由几个 object 文件和几个 static 库构建而成。 linker 抱怨一切都应该用-fPIC构建。 所有 object 文件和大多数 static 库都是在没有此选项的情况下构建的。 这让我问了几个问题: 我是 ...
我正在尝试通过 cmake 将 afinit_state.a 库与我的 C++ 项目链接。 但是我收到了附加错误。 我的 cmake 文件是: 在发布这个问题之前,我已经尝试了我可以在互联网上找到的选项。 很多人都说我使用了 set_property(TARGET ${PROJECT_NAME} P ...
我看过很多关于解决这种类型的链接器错误的帖子,在大多数情况下,人们只是忘记用-fPIC编译,有时人们在使用内联函数等方面遇到问题,但这里并非如此。 我正在尝试使用Pybind11为 python 包装一个 C++ 库。 在这个过程中,我想将一些静态库(其中一个是newmat11 )链接到一个 .so ...
(来自 comp.lang.ada 的交叉发布) 我正在遵循 GNAT 示例中的插件方案,使用 GTK。 所以我需要 gtkada,并且为了正确处理它,gtkada_contributions。 我从 Adacore 站点获取了(二进制)GNAT 和 gtkada 的实际版本(2020)。 我从 ...
我有一个小库,我用gcc构建它,没有-fPIC选项,我认为这意味着生成的 object 文件将不可重定位,但是当我发出file命令时,它显示可重定位,为什么? 构建命令: ...
我正在尝试建立一个共享库。 我的目标是将所有依赖项作为 static 库拉到一个共享库中。 我的理解是,这可以通过-Wl,--whole-archive标志来完成。 这是我负责配置共享库的 CMake 脚本的片段。 我在尝试编译时遇到的错误(详细模式已打开)是: 但是,根据这个问题, /usr/lo ...
我在尝试链接传递使用 Qt5 的可执行文件时遇到了一些问题。 我已经使用 CMake 和选项CMAKE_POSITION_INDEPENDENT_CODE = ON配置了我的项目,但是在编译可执行文件时, Qt5 抱怨我应该使用fPIC 。 我在我的主 CMakeLists.txt 文件中启用了这两 ...
我注意到,当使用otool检查Mach标头时,尽管在Xcode中将“ Generate Position-Dependent Executable”和“ Generate Position-Dependent Code”都设置为NO ,但Cocoa Touch框架从未设置PIE标志。 不过,这 ...
我正在尝试编译使用libnothing.so的main.c。 这是源代码: main.c 什么都没有 什么都没有 首先,我不像fpic那样编译nothing.c: gcc -c nothing.c我将收到此错误: /usr/bin/ld: nothing.o: r ...
我的应用程序需要在运行时加载一个或多个算法,我使用.so。 问题是这些库不被任何其他进程使用,而是我的应用程序,所以不需要与其他人共享.text部分。 .so的某些部分来自我之前编译的其他静态库。 在这种情况下,我是否仍然必须为静态文件使用-fpic标志? 编辑 我找到了这 ...
我正在编译一个静态库,我们称它为 static.a,它稍后由共享库 shared.so 和最终的可执行二进制文件链接(shared.so 仅使用 static.a 中的一些函数,也许稍后可以进一步分裂)。 如果我尝试使用 gcc 7.4 编译它,我会收到此链接器错误: 我决定也尝试 gcc 9. ...
我生成了一个共享库 .so 文件我没有在 CMakeLists.txt 中使用任何标志 -fpic 但是其中一个工具报告了 mips64 架构的“ELF 没有位置独立可执行文件 (PIE) 标志构建”,而不是其他架构。 有人知道 -fpic 在其他架构中是如何处理的,但在 mips64 中没有吗 ...