C/C++: how to figure out link flags?

2019-02-17 18:51发布

问题:

How do I reliably figure out link flags for libraries? I always end up googling/digging manuals.

Is there a way to list libraries available for linking, with names and/or descriptions?

edit: Linux system, GNU build chain, classics.

回答1:

On most Linux systems, you can use pkg-config to list out the compiler options for a given library. For example:

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

becomes

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

Or an example with slightly more complicated output:

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


标签: c++ c linker