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

Sur*_*non 12 c gcc cygwin shared-libraries

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

以下语法是否正确?

gcc -shared -o libexample.so libexample.a
Run Code Online (Sandbox Code Playgroud)

APr*_*mer 13

gcc -shared -o libexample.so -Wl,--whole-archive libexample.a
Run Code Online (Sandbox Code Playgroud)

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


syn*_*tel 5

它可能不起作用,但您可以随时尝试:

ar -x libexample.a
gcc -shared *.o -o libexample.so
Run Code Online (Sandbox Code Playgroud)

如果它抱怨 -fPIC,那么它可能不起作用。