在gcc(g ++)下,我编译了一个静态的.a
(称之为some_static_lib.a
)库。我想将这个.a
文件链接到另一个动态库(称为libsomeDyn.so
),我正在构建这个文件。如何将静态库链接到gcc的动态库中
的/ usr /斌/克++ -fPIC -g -O2 -Wall -Werror -pipe -march = pentium3 -mtune:虽然
.so
编译,我不使用nm
命令看到.so
下的.a
内容= prescott -MD -D_FILE_OFFSET_BITS = 64 -DLINUX -D_GNU_SOURCE -D_THREAD_SAFE -I ../../../../../../../../ -I ../../ .. /../../../../..//libraries -Wl,-rpath,/ usr/lib -o libsomeDyn.so some.o another.o some_static_lib.a -shared -Wl -x - Wl,-soname,libsomeDyn.so
我没有看到some_static_lib.a
下的功能libsomeDyn.so
。我究竟做错了什么?
所以我有一些古怪的依赖在静态库中。它引用了包含在动态库中的函数。如何告诉gcc在动态库中找到未定义的引用? 谢谢 – bob 2010-04-16 00:26:05
@bob - 静态库引用动态库中的符号应该没有问题(一旦链接静态库,就好像您直接在命令行中引用.o一样)。我怀疑还有其他问题,并建议发布一个新问题。 – 2010-04-16 04:15:45
这是我的解决方案,但在OSX上,我不得不使用'-all_load'作为'--whole-archive'的等价物,正如有人在IRC上建议我的。我希望它可以帮助别人! – vmonteco 2017-06-11 14:16:07