0

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

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

上面的 objs/*.o 包含使用 ar 从各种静态库中提取的所有目标文件。

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

4

2 回答 2

2

这确实是一个两步过程:

ar -x mylib.a
gcc -shared *.o -o mylib.so
于 2012-03-16T17:38:31.840 回答
0

您不能使用的原因gcc -shared -o foo.so foo.a是因为归档的处理方式不同,因为归档中的目标文件仅用于解析未定义的符号——其中没有符号,因为您没有指定先前的 .o 文件。

于 2012-03-16T19:35:32.330 回答