如何从静态库创建共享对象文件

时间:2011-06-07 10:16:39

标签: c gcc cygwin shared-libraries

如何从静态库创建共享对象文件?我正在使用Cygwin。

以下语法是否正确?

gcc -shared -o libexample.so libexample.a

2 个答案:

答案 0 :(得分:12)

gcc -shared -o libexample.so -Wl,--whole-archive libexample.a

请注意,您通常希望将.so中组合的对象编译为PIC,这是静态库通常不需要的。

答案 1 :(得分:4)

它可能无效,但您可以随时尝试:

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

如果它抱怨-fPIC,那么它可能无效。