我有一个项目,我有一个静态库libhelper.a
和另一个与我的实际共享对象库libtestlib.so
。我的目标是将libhelper.a
链接到libtestlib.so
。这在Linux/BSD上可能吗?当我试图创造一个测试程序,我得到了以下错误:混合静态库和共享库
./prog1:/usr/local/lib/libtestlib.so.1.0:未定义的符号'
我的猜测是这是因为libhelper.a未编译为-fPIC
而libtestlib.so
是。构建使用共享库的程序的正确方法是什么?这些库也具有静态库的依赖关系?
谢谢!
“将libhelper.a链接到libtestlib.so”什么? – 2011-03-26 17:14:02
到目前为止您尝试了什么?无论如何,我不知道有什么方法将非PIC代码链接到共享库中。静态库通常只能链接到可执行文件中,这就是为什么它们很少用PIC编译的原因。你不能将两个库链接到可执行文件,或者从一开始就用PIC来构建? – Philipp 2011-03-26 18:24:53