在共享对象中包括静态库



我想把一堆静态库编译成一个共享对象。到目前为止,我有

g++ -Wl -shared -fPIC -o myshared.so objs/*.o

其中,上面的objs/*.o包含使用ar.从各种静态库中提取的所有对象文件

更新:基本上,我想知道是否可以直接在命令行上使用.a文件,而不必提取它们。

这实际上是一个两步过程:

ar -x mylib.a
gcc -shared *.o -o mylib.so

不能使用gcc -shared -o foo.so foo.a的原因是,存档的处理方式不同,因为存档中的对象文件仅用于解析未定义的符号,而这些符号中没有,因为之前没有指定任何.o文件。

相关内容

  • 没有找到相关文章

最新更新