由于重定位错误,编译失败

问题描述 投票:1回答:1

我正在尝试编译ANN。我使用以下命令进行了编译,

make linux-g ++

稍后,当我尝试在另一个代码中使用此代码时,该代码未编译。我收到以下错误,

>  relocation R_X86_64_PC32 against symbol `_ZSt4cerr@@GLIBCXX_3.4' can
> not be used when making a shared object; recompile with -fPIC
> /usr/bin/ld: final link failed: Bad value

经过各种问题,我尝试将以下行添加到CMAKE,

set_target_properties(${LIBRARY_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON)

但仍然无法正常工作。我该如何解决?

c++ makefile cmake compilation
1个回答
2
投票

我不确定这是否是正确的解决方案,但作为解决方法,您可以替换该行

"C++ = g++"

with

"C++ = g++ -fPIC"

在文件Make-config中,然后重新编译。

© www.soinside.com 2019 - 2024. All rights reserved.