Linux 如何将libc.a链接到共享库
我有一个名为nvdebug.so的共享库,它是编译的结果 我想要。所以文件链接到libc.a 虽然我搜索了几乎所有的谷歌网站,但我找不到解决方案 我认为'-wholearchive'命令是最合适的解决方法 如果工作正常,nvdebug.so文件大小必须增加,但工作不正常Linux 如何将libc.a链接到共享库,linux,shared-libraries,static-libraries,static-linking,Linux,Shared Libraries,Static Libraries,Static Linking,我有一个名为nvdebug.so的共享库,它是编译的结果 我想要。所以文件链接到libc.a 虽然我搜索了几乎所有的谷歌网站,但我找不到解决方案 我认为'-wholearchive'命令是最合适的解决方法 如果工作正常,nvdebug.so文件大小必须增加,但工作不正常 gcc -shared -Wl,-soname,nvdebug.so -o nvdebug.so -Wl,--whole-archive -L/usr/lib -lc -Wl,--no-whole-archive 我不知道我应
gcc -shared -Wl,-soname,nvdebug.so -o nvdebug.so -Wl,--whole-archive -L/usr/lib -lc -Wl,--no-whole-archive
我不知道我应该修改什么,整个归档的机制和共享命令
如果你们能帮我做些什么,我真的很感激你们不能将静态库链接到共享库中,因为共享库必须包含位置无关的代码,而静态库包含称为可重定位代码的位置相关代码。你最多只能得到一个链接器错误。所以,这是不可能的,唯一的选择就是放弃,尝试其他的东西 笔记
实际上,可以使用位置无关的代码编译静态库,这将允许您这样做,但这意味着重新编译libc.a,我假设这是一个非选项。我认为,在编译libc时,只需在CFLAGS中添加-fPIC即可。问题是。。。链接到libc有什么问题?