I know -Wl,-shared
is a option of ld. I've seen some person compile like this,
$ gcc -shared -Wl,-soname,libtest.so -o libtest.so *.o
And some person like this
$ gcc -Wl,-shared -Wl,-soname,libtest.so -o libtest.so *.o
So, I want to know if there is some difference between -shared
and -Wl,-shared
.
Thanks.
There is a difference between passing -shared
to gcc or -shared
to ld (via -Wl
). Passing -shared
to GCC may enable or disable other flags at link time. In particular, different crt*
files might be involved.
To get more information, grep for -shared
in GCC's gcc/config/
directory and subdirectories.
Edit: To give a specific example: on i386 FreeBSD, gcc -shared
will link in object file crtendS.o
, while without -shared
, it will link in crtend.o
instead. Thus, -shared
and -Wl,-shared
are not equivalent.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With