问题标签 [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.
makefile - ROOT 安装错误:使用 -fPIC 重新编译
我现在正在尝试安装可用的 ROOT 包
之后./configure, make
; 我收到如下错误:
我真的读了很多关于这个问题的书;似乎是在 64 位机器上运行 32 位软件引起的,我需要使用 -fPIC 重新配置。所以我试着跑
CFLAGS="-O3 -fPIC" ./configure
或者根据Passing a gcc flag through makefile
添加到里面。bashrc
, 我加:
但是,它们都不起作用!
这真的让我发疯了......我的情况与其他人的唯一区别是在这里我有 Python2.6 的问题,而其他人有其他库......
谁能帮我....
c++ - boost测试fpic链接错误
我一直在盯着和谷歌搜索,但我看不到我做了什么。
我有一个在 32 位机器上工作的项目。我刚刚将存储库拉到 64 位机器(这是该项目的原始开发机器),现在在尝试构建测试二进制文件时出现以下链接错误
我真的看不出我可以改变什么。boost 库是直接从 ubuntu 存储库中提取的。任何有线索的人。
gcc - 使用静态链接的 libstdc++ 创建共享库时失败
在 64 位 x86 机器上使用 gcc 4.5.1,我首先创建 ao 如下: g++ -fPIC -c a.cc -o ao
然后尝试创建 liba.so 如下: g++ -static-libstdc++ -shared -W1,-soname,liba.so -o liba.so.1.0.0 ao
但失败了,信息如下:relocation R_X86_64_32S against `vtable for __gnu_cxx::stdio_filebuf >' can not be used when making a shared object; 使用 -fPIC 重新编译
我尝试重新编译 libstdc++ 库,添加了 -fPIC,但它还是失败了
c++ - 使用与位置无关的代码按值和指针传递
我一直在尝试找出与位置无关代码有关的一些事情,特别是使用 gcc 和-fpic
.
我编写了一个函数,该函数测量多次在堆栈中传递指针所花费的时间,然后通过传递副本来执行相同的操作。在我的示例中,我看到的效果仅适用于没有继承或虚函数的结构或简单类。
为什么使用 PIC 时指针会变慢(一点点)?和没有 PIC 的情况相比,为什么副本会变得更快?
我-03
也在编译。
assembly - 存储所有寄存器而不刮任何
我正在开发一个将引导另一个程序的程序,因此我需要保留传递给我的程序的寄存器,以便我可以在跳转到应该加载的程序之前恢复它们。这是一个裸机系统,没有操作系统,没有 MMU(存在,但目前未启用)。
这是我的代码,我想知道它是否正确,因为我没有要测试的手臂板,我必须尽快提交,
pc相关商店也确实只能使用源寄存器低寄存器(r0-r7),我认为这只是由于指令宽度有限而无法访问某些指令中的高寄存器的拇指问题。
gcc - 在 Code::Blocks 中应用 --enable-shared 或 -fPIC on
正如问题所述,我需要应用这些编译器/链接器设置中的任何一个。我正在使用 Code::Blocks 10.05。我浏览了所有构建设置屏幕。我找不到在哪里应用这些设置。我得到以下输出:
g++ - 无法使用 g++ 编译可共享的 .o 文件
当我使用以下命令编译时:
g++ -fPIC -o obj/buffer.o buffer.cpp
我收到以下错误:
/usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o:在函数
_start': (.text+0x20): undefined reference to
中'
我认为使用 -fPIC 标志,我不需要主要功能。所有 cpp 文件都出现此错误。我确实有一个 main.cpp,其中包含共享库函数。您可以在以下位置获取源代码:
有任何想法吗?我知道我可以使用 ld 二进制文件将所有 o 文件放入 an 中,因此一旦完成,我只需要帮助将它们全部构建成可共享的 .o 文件
linker - 静态库中的 fPIC 代码:为什么?怎么了?
将位置无关代码放在静态库中会发生什么?(特别是在 x86-64 上)
也就是说:.o
用PIC生成几个文件,放在一个.a
文件中。这.a
像往常一样静态链接到最终的可执行文件中。
它似乎有效,但这样做有意义吗?为什么?
最后的地址计算是怎么做的?(链接时间?运行时间?)
谢谢
static - 与静态库链接的共享库:重定位错误
出于可移植性原因,我想用 gfortran 创建一个共享库,将它与 libgfortran 的静态版本链接。不幸的是,我没有设法适当地链接不同的对象。我已经找到了一些解决类似问题的帖子,但我不知道如何解决这个问题。
我的源文件都是用-fPIC
标志编译的。当我尝试将对象与标志-shared
和链接时-static-libgfortran
,我收到以下错误消息:
我正在使用 gfortran 4.6.3,它是在我的服务器上从头开始编译的。安装运行顺利,我没有更改标准配置。我在旧帖子上发现编译器应该配置,但是GCC 手册--with-pic
中没有提到这个标志。
问题是来自编译器还是来自我试图链接不同对象的方式?知道如何解决这个问题吗?
非常感谢您的帮助!
c++ - 为什么 g++ 在启用 `-fpic` 的情况下不发出这个与构造函数相关的 noexcept 警告?
我有下一个代码:
并使用下一个选项:
-fno-pic -fmessage-length=0 -std=c++0x -Wnoexcept
g++ 抛出下一个警告:
但是为什么当我使用-fpic
而不是-fno-pic
g++
不会引发任何警告时?
编辑:
GCC 版本 - 4.7.2