Gcc 从一个编译器版本到另一个编译器版本的符号重定位
我正在编译一个静态库,我们称之为static.a,它稍后由一个共享库shared.so和一个最终的可执行二进制文件链接(shared.so只使用static中的一些函数。a也许以后可以进一步拆分)。如果我尝试使用gcc 7.4编译它,我会得到以下链接器错误:Gcc 从一个编译器版本到另一个编译器版本的符号重定位,gcc,linker,g++,fpic,Gcc,Linker,G++,Fpic,我正在编译一个静态库,我们称之为static.a,它稍后由一个共享库shared.so和一个最终的可执行二进制文件链接(shared.so只使用static中的一些函数。a也许以后可以进一步拆分)。如果我尝试使用gcc 7.4编译它,我会得到以下链接器错误: /usr/bin/ld: ../../static.a(file.cpp.o): relocation R_X86_64_TPOFF32 against symbol `_ZGVZN6spdlog7details2os9thread_idE
/usr/bin/ld: ../../static.a(file.cpp.o): relocation R_X86_64_TPOFF32 against symbol `_ZGVZN6spdlog7details2os9thread_idEvE3tid' can not be used when making a shared object; recompile with -fPIC
我决定尝试gcc 9.1,这个错误不再出现了