2013-02-12 2 views
4

Как я могу достоверно определить флаги ссылок для библиотек? Я всегда получаю руководства по поиску и обработке.C/C++: как определить флаги ссылок?

Есть ли способ перечислить библиотеки, доступные для связи, с именами и/или описаниями?

редактирование: система Linux, цепочка построения GNU, классика.

+2

Читайте библиотеку документации ... – pmg

+1

..., а затем Google. –

+0

Связывающая семантика различается в разных операционных системах и компиляторах. Нам понадобится гораздо больше деталей, чтобы внести какие-либо полезные вклады. – radical7

ответ

4

В большинстве систем Linux вы можете использовать pkg-config, чтобы перечислять параметры компилятора для данной библиотеки. Например:

g++ example.cpp $(pkg-config --cflags --libs libpng) 

становится

g++ example.cpp -I/usr/include/libpng12 -lpng12 

Или пример с несколько более сложной продукции:

$ pkg-config --cflags --libs gthread 
-D_REENTRANT -I/usr/include/glib-1.2 -I/usr/lib64/glib/include -lgthread -lpthread -lglib 
+1

Также стоит отметить: 'locate --regex pkgconfig /.* pc $' отобразит доступный пакет данные для 'pkgconfig'. – slezica

Смежные вопросы