如何从静态库创建共享对象文件?我正在使用Cygwin。
以下语法是否正确?
gcc -shared -o libexample.so libexample.a
答案 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,那么它可能无效。