gpt4 book ai didi

c++ - 构建错误,cmake,制作共享对象时无法使用;使用 -fPIC 重新编译

转载 作者:行者123 更新时间:2023-11-28 06:41:18 25 4
gpt4 key购买 nike

当我使用 cmake 构建项目时,出现以下错误。尽管我尝试通过 add_definition() 在 CMakeLists.txt 中添加编译标志 -fPIC,但此错误仍然存​​在。谁能帮忙?我是的新人.任何建议将不胜感激。

/usr/bin/ld: /act/mvapich2-1.9/gcc-4.7.2/lib/libmpich.a(mvapich_malloc.o): relocation R_X86_64_32S against `.bss' can not be used when making a shared object; recompile with -fPIC
/act/mvapich2-1.9/gcc-4.7.2/lib/libmpich.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [src/libstracker.so] Error 1
make[2]: Leaving directory `/home/xxxx/success/AutomaDeD-master'
make[1]: *** [src/CMakeFiles/stracker.dir/all] Error 2
make[1]: Leaving directory `/home/xxxx/success/AutomaDeD-master'
make: *** [all] Error 2

最佳答案

add_definitions是为了添加预处理器定义,而不是标志

-fPIC 默认存在于使用 GCC 构建的共享库的链接器标志中,请参阅 Modules/Compiler/GNU.cmake .您可以通过运行 make VERBOSE=1 查看所有标志。

至于错误本身,参见this answer .

关于c++ - 构建错误,cmake,制作共享对象时无法使用;使用 -fPIC 重新编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25902519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com