我正在编译一个静态库,我们称它为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_idEvE3tid' can not be used when making a shared object; recompile with -fPIC
我决定也尝试使用gcc 9.1,并且不再出现此错误。
谢谢。