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

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

以下语法是否正确?

gcc -shared -o libexample.so libexample.a 

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

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

它可能不起作用,但你总是可以尝试:

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

如果它抱怨-fPIC,那么它可能无法正常工作。