有-static
和没有-static
有什么区别
当我使用gcc编译-static
共享库时,
我得到一个错误
/usr/sbin/ld.gold: error: /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/crtbeginT.o: requires dynamic R_X86_64_32 reloc against '__TMC_END__' which may overflow at runtime; recompile with -fPIC
当我用Google搜索这个错误的解决方案时,我发现这似乎是一个经典的问题。
如果我想让它工作,我应该这样做。
cp crtbeginS.o crtbeginT.o
那么,如果我用gcc编译一个动态库,有-static
和没有-static
有什么区别呢?
我应该用-static
编译一个共享库吗?
顺便说一下,当我使用cc_shared_libray在bazel中构建共享库时,也出现了这个错误,似乎cc_shared_library默认使用-static
编译共享库
1条答案
按热度按时间9rnv2umw1#
只需使用-shared而不是-static