как заставить компоновщик использовать разделяемую библиотеку вместо статической?

Это цитата из книги по программированию 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 ?

17
задан dragan.stepanovic 12 December 2010 в 15:58
поделиться