在共享对象中包含静态库?
问题描述:
我想将一堆静态库编译成一个共享对象。到目前为止,我有在共享对象中包含静态库?
g++ -Wl -shared -fPIC -o myshared.so objs/*.o
凡OBJ文件/ *。上述Ø包含了所有使用AR的各种静态库中提取的目标文件。
更新:基本上,我想知道如果我可以直接在命令行上使用.a文件而不必提取它们。
答
不能使用gcc -shared -o foo.so foo.a
的原因是因为档案从档案对象文件是处理不同的是只用来处理未定义的符号 - 其中有没有,因为你之前没有指定.o文件。
我真的不想用PIC代码(PIC =位置独立代码)混合非PIC代码(这是静态库中常见的味道)。你会遇到很多麻烦。 – 2012-03-16 17:41:40