首页 > 解决方案 > gcc:创建静态链接到其所有依赖项的共享库

问题描述

我想创建与所有依赖项静态.so链接的共享 ( ) ELF 文件(因此它必须包含所有 libc 函数)。

$ gcc -fPIC -static -shared libfoo.c
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/10/crtbeginT.o: relocation R_X86_64_32 against hidden symbol `__TMC_END__' can not be used when making a shared object

这是否意味着静态链接时我不能有图片代码?

如果是这样,为什么ld(1)说:

-static 此选项可与-shared. 这样做意味着正在创建一个共享库,但必须通过从静态库中拉入条目来解决该库的所有外部引用。

还是因为crtbeginT.o没有使用 -fPIC 编译?

标签: cgccld

解决方案


推荐阅读