Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何将libc.a链接到共享库_Linux_Shared Libraries_Static Libraries_Static Linking - Fatal编程技术网

Linux 如何将libc.a链接到共享库

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 我不知道我应

我有一个名为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
我不知道我应该修改什么,整个归档的机制和共享命令


如果你们能帮我做些什么,我真的很感激你们不能将静态库链接到共享库中,因为共享库必须包含位置无关的代码,而静态库包含称为可重定位代码的位置相关代码。你最多只能得到一个链接器错误。所以,这是不可能的,唯一的选择就是放弃,尝试其他的东西

笔记
实际上,可以使用位置无关的代码编译静态库,这将允许您这样做,但这意味着重新编译libc.a,我假设这是一个非选项。我认为,在编译libc时,只需在CFLAGS中添加-fPIC即可。

问题是。。。链接到libc有什么问题?