Мне кажется, что оба работают, какая разница?
Статически ли gcc libname.so ... связывает libname.so или нет?
gcc libname.so ...
libname.so
gcc -l ищет как статические, так и динамические библиотеки (если не указано -static) в пути поиска библиотек.gcc ... libname.so динамически связывается с libname.so в текущем каталоге.
gcc -l
-static
gcc ... libname.so
Вы не можете статически связать динамическую библиотеку.Вы просто играете двумя разными способами присвоить имя библиотеки программе драйвера компилятора (gcc).Ларсман прав, что опция -l будет искать как общие, так и статические библиотеки (если вы не укажете -static в вызове gcc.)
gcc ... libname.so совпадает с gcc -shared -L. -lname
gcc -shared -L. -lname