Linux 如何使用gcc4将静态库(归档)链接到空的动态库

Linux 如何使用gcc4将静态库(归档)链接到空的动态库,linux,gcc4,Linux,Gcc4,大家好 我正在linux上使用gcc创建一个共享库。该库本身没有代码,但链接到几个也使用gcc构建的静态库(归档)。我需要通过共享库导出静态库的符号。结果是,生成的共享库太小,实际上不包含上述静态库提供的任何符号。我还尝试了一张导出符号的地图,但毫无帮助。你们谁能提出一个解决方案 提前10倍您需要链接器的--whole archive选项来拉入所有静态归档: gcc -shared -o libwhatever.so -Wl,--whole-archive -lstatic -Wl,--no-w

大家好

我正在linux上使用gcc创建一个共享库。该库本身没有代码,但链接到几个也使用gcc构建的静态库(归档)。我需要通过共享库导出静态库的符号。结果是,生成的共享库太小,实际上不包含上述静态库提供的任何符号。我还尝试了一张导出符号的地图,但毫无帮助。你们谁能提出一个解决方案


提前10倍

您需要链接器的
--whole archive
选项来拉入所有静态归档:

gcc -shared -o libwhatever.so -Wl,--whole-archive -lstatic -Wl,--no-whole-archive
需要
-Wl
,因为
--whole archive
是一个链接器选项


为此,需要正确编译libstatic.a中的代码,以便在共享对象中使用(即在需要的平台上使用
-fpic

您需要链接器的
--whole archive
选项来拉入所有静态归档:

gcc -shared -o libwhatever.so -Wl,--whole-archive -lstatic -Wl,--no-whole-archive
需要
-Wl
,因为
--whole archive
是一个链接器选项

为此,需要正确编译libstatic.a中的代码,以便在共享对象中使用(即,在需要的平台上使用
-fpic