当前位置: 首页 > 知识库问答 >
问题:

在创建共享对象时,不能使用针对符号`__GMPN_INVERT_LIMB'的重定位R_X86_64_PC32;用-fpic重新编译

司寇正志
2023-03-14

我正在制作一个需要libgmp的共享库。我的目标是将静态libgmp嵌入到共享库中。

我尝试过。/configure with cflags=“-fpic”。此外,我还尝试修改了libgmp源代码的subdir中的所有Makefile,以便用-fpic编译所有代码。(脏活累活)

但是,当我将libgmp.a链接到共享库时,仍然收到错误消息。

/usr/bin/ld://usr/local/lib/libgmp.a(Divrem_1.o):在创建共享对象时,不能使用针对符号`__gmpn_invert_limb'的重新定位R_X86_64_PC32;用-fpic重新编译

共有1个答案

阴高寒
2023-03-14

试试这个:

./configure --with-pic
 类似资料:
  • 我试图安装一个库,但运行make后出现以下错误。如何用标志重新编译? 使目标pwrutils的扫描依赖项链接CXX共享库libpwrutils.so/usr/bin/ld://usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../../x86_64-linux-gnu/libboost_system.a(error_code.o):在创建共享对象时不能使用针对`

  • 问题内容: 我正在尝试从VPS中的makefile编译此源代码,但无法正常工作。VPS是64美分的操作系统 这是完整的错误 这是我的makefile: 有人知道怎么了吗? 问题答案: 执行编译器告诉您的操作,即使用进行重新编译。要了解此标志的作用以及在这种情况下为什么需要此标志,请参阅GCC手册的 代码生成选项 。 简而言之,术语“ 位置无关代码” (PIC)指的是与内存地址无关的生成的机器代码,

  • 我正在Linux中使用NASM编译器编译一个NASM 64位共享对象,并与ld链接。它使用以下字符串编译为对象文件: 我与ld链接: 我得到以下错误: 不幸的是,NASM编译器没有-fPIC选项。 在阅读了许多关于在Linux中为64位共享库编写位置独立代码的资源后,我非常理解这个问题,但我仍然不清楚要在64位NASM中实现位置独立需要做哪些指令更改。例如,所有涉及命名变量的指令都需要是“rel”

  • 情况:JDesktopPane中有供应商_JinternalFrame。JDesktopPane中的call SetVisible(true)有一个Supplier_按钮,用于显示供应商框架。但当我通过Dispose()关闭供应商框架时;再次单击按钮后,它将隐藏并不再显示。有两个选项可以使用setshow();和setHide()而不是setDispose()。但我想重新创建Jinternalfr

  • 我创建了一个object实例,并获得一个指向该实例的指针,然后传递给一个函数。负责捕获该指针并将其存储在unordered_map中的函数。 我做了几次尝试让它编译,但没有一次奏效。 在这种情况下,调用的正确方法应该是什么? 注意,我不想为指针创建shared_ptr,而是为对象本身创建shared_ptr。

  • 我尝试了这里建议的标志,但没有成功。 并将-fpic添加到CXXFLAGS和cflags