Это цитата из книги программирования Linux:
% gcc -o app app.o -L. –ltest
Предположим, что доступны как libtest.a
, так и libtest.so
. Тогда компоновщик должен
выберите одну из библиотек, а не другую. Линкеров ищет каждый каталог (сначала
те, которые указаны с параметрами -L
, а затем те, что указаны в стандартных каталогах).
компоновщик находит каталог, содержащий либо libtest.a
, либо libtest.so
, компоновщик останавливается
поисковые каталоги. Если в каталоге присутствует только один из двух вариантов, компоновщик
выбирает этот вариант. В противном случае компоновщик выбирает версию разделяемой библиотеки, если только
вы явно укажете его иначе. Вы можете использовать опцию -static
для запроса статического
архивы. Например, следующая строка будет использовать архив libtest.a
, даже если
Доступна также общая библиотека libtest.so
:
% gcc -static -o app app.o -L. –ltest
Так как, если компоновщик встречается с каталогом, который содержит libtest.a
, он останавливает поиск и использует эту статическую библиотеку, как заставить компоновщик искать только для общей библиотеки, а не для статического?
% gcc -o app app.o -L. libtest.so
?