问题标签 [fpic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
116990 浏览

c++ - 如何使用 -fPIC 重新编译

我试图按照本指南在我的 ARM Ubuntu 机器上重新安装我的 ffmpeg。不幸的是,当我编译一个使用这个库的程序时,我得到了以下失败:

现在我想像-fPIC编译器建议的那样重新编译它,但我不知道怎么做。任何帮助表示赞赏。

0 投票
1 回答
2056 浏览

32bit-64bit - PIC 编译 - 错误:创建共享对象时无法使用针对“vtable for hit”的重定位 R_X86_64_32S;使用 -fPIC 重新编译

我是 Linux 的新手,我在编译一个在 32 位机器上运行良好的 make 文件时遇到了麻烦。我没有编写这个程序,但我需要它来使用它的功能。我的机器是 64 位的,我收到以下消息错误:

我一直试图通过使用这个网站来解决这个问题,但我没有让程序工作...... http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml? part=1&chap=3 我不习惯生成文件,这就是为什么我没有设法正确修改生成文件以 PIC 编译共享库。我在全局范围内添加了标志'export CXXFLAGS=$CXXFLAGS -fPIC',但它没有用。我完全迷路了。

这是制作文件(两个制作文件和一个调用它们的文件)。

-----------------------------------------2 -------- ------------

----------------------3--------------

希望有人能帮助我。提前致谢!!丹尼尔

0 投票
1 回答
2261 浏览

linux - 如何知道是否使用 -fPIC 选项构建了共享库二进制文件

我正在研究嵌入式 Linux 环境。我有一组二进制格式的共享库(我没有源代码和 Makefile),我想检查它们是否已使用 -fPIC 选项编译。是否有任何工具或方法来测试共享库二进制文件是否已编译 -fPIC?

问候。

0 投票
1 回答
488 浏览

makefile - Giza++安装,FORTRAN问题

我正在尝试在 Ubuntu 12.10 64 位上安装 Giza++ 和 Moses。虽然让我不断遇到同样的问题:

...................................

谷歌搜索没有多大帮助。对于如何解决此问题的任何提示,我将不胜感激。我应该怎么做才能用 -fPIC 重新编译它?

0 投票
2 回答
12523 浏览

c++ - 尽管使用 -fPIC 编译,但链接器错误“针对未定义符号重定位 R_X86_64_PC32”

我正在使用命令行编译一个 c++ 程序

然后尝试通过

这一直有效。但今天我得到:

符号_ZTVN12_GLOBAL__N_111handle_baseEde-mangles 为 vtable for (anonymous namespace)::handle_base (handle_base是在 prog.cc 的匿名命名空间中定义的多态类,是的,我确实调用了dynamic_cast<handle_base>()。)

我正在使用 gcc 版本 4.7.0 (GCC) 和 GNU ld (GNU Binutils; openSUSE 11.1) 2.19。任何人都可以提供帮助(建议解决方案[除了没有共享对象或dynamic cast])吗?

0 投票
2 回答
7348 浏览

makefile - 收到错误“使用 -fPIC 重新编译”

在 centos 中的 ./configure asterisk 之后,我输入 make 命令但收到以下错误

/usr/bin/ld: /usr/local/lib/liblua.a(lapi.o): 重定位 R_X86_64_32 反对 `luaO_nilobject_' 在制作共享对象时不能使用;使用 -fPIC /usr/local/lib/liblua.a 重新编译:无法读取符号:值错误

0 投票
1 回答
1072 浏览

ubuntu-12.04 - elocation R_X86_64_32 对 `.rodata' 在制作共享对象时不能使用;使用 -fPIC 重新编译

我的服务器在 ubuntu 12.04 上。

我正在尝试安装此处可用的 Levenshtein-MySQL-UDF: https ://github.com/jmcejuela/Levenshtein-MySQL-UDF

我下载了 .zip 并在我的服务器上找到了 levenshtein.c 文件:/home/username/levenshtein.c

当我在终端中输入以下命令时:

我发现了这个错误:

/tmp/ccCPQijg.o:无法读取符号:错误值 collect2:ld 返回 1 退出状态

我用谷歌搜索了错误以找到解决方法并安装了 build-essential,但是在我遇到同样的错误之后。

我不知道如何使用 -fPIC 正确重新编译我必须重新编译的内容......

我发现了很多与我的话题有点不同的话题,我不知道我现在能做些什么来解决我的问题。

任何人都可以帮助我吗?

谢谢 ;-)

BBFUNK01

0 投票
1 回答
2426 浏览

c++ - 将静态 (.a) 库与共享 (.so) 库链接,出现错误“针对本地符号重新定位 R_X86_64_32S;使用 -fPIC 重新编译”

使用 eclipse 在 redhat 中使用 g++ 64 位编译。

编译错误:../lib-EL5-64bit/libskd3_clnt_30134500.a(skd_clnt.o):在制作共享对象时,不能使用针对“本地符号”的重定位 R_X86_64_32S;使用 -fPIC 重新编译

我尝试过的事情我将 -fPIC 添加到了 c++ 编译器标志以及链接器标志。它已经存在于编译器标志中,我只是将它直接移到 g++ 之后,并在列表的末尾。

我已经要求 .a 库的创建者使用 -fPIC 重新编译它仍然给出相同的错误

有什么方法可以确保他们的库是用 -fPIC 编译的?错误消息是说我需要用 -fPIC 编译我的 .so,还是需要用 -fPIC 编译 .a 文件?我还能检查什么?

这是make文件(由eclipse自动生成)

制作文件:

子目录.mk

对象.mk

来源.mk

0 投票
0 回答
799 浏览

static - 使用 -fpic 和 -msingle-pic-base 时 arm 中的静态变量

当使用选项 -fpic 和 -msingle-pic-base 为 arm cortex-m3 编译时,它会创建一个全局偏移表,但是全局或本地静态变量不包含在全局偏移表中,并且具有绝对地址。这是一个错误还是一个功能,还是我错过了一个额外的选项?

0 投票
2 回答
744 浏览

x86-64 - Makefile:如果构建目标是amd64,则确定构建,以便我可以调整CFLAGS=-fPIC

我正在打包一个 deb 文件,并且配置脚本没有检查是否需要 -fPIC。因此在 amd64 上构建失败(因为 PIC 是强制性的)。

如果需要 -fPIC,我如何在 Makefile 中确定或在 debian/rules 中更好地确定?