问题
How to create a shared object file from a static library? I am using Cygwin.
Is the following syntax correct?
gcc -shared -o libexample.so libexample.a
回答1:
gcc -shared -o libexample.so -Wl,--whole-archive libexample.a
Pay attention that often you'll want the objects combined in your .so to be compiled as PIC, something you don't often want for a static library.
回答2:
It might not work but you can always try:
ar -x libexample.a
gcc -shared *.o -o libexample.so
If it complains about -fPIC, then it probably won't work.
来源:https://stackoverflow.com/questions/6263780/how-to-create-a-shared-object-file-from-static-library