C/C++:如何弄清楚链接标志?

sle*_*ica 5 c c++ linker

如何可靠地找出库的链接标志?我总是谷歌搜索/挖掘手册.

有没有办法列出可用于链接的库,名称和/或描述?

编辑:Linux系统,GNU构建链,经典.

BoB*_*ish 5

在大多数 Linux 系统上,您可以使用pkg-config列出给定库的编译器选项。例如:

g++ example.cpp $(pkg-config --cflags --libs libpng)
Run Code Online (Sandbox Code Playgroud)

变成

g++ example.cpp -I/usr/include/libpng12 -lpng12
Run Code Online (Sandbox Code Playgroud)

或者一个输出稍微复杂的示例:

$ pkg-config --cflags --libs gthread
-D_REENTRANT -I/usr/include/glib-1.2 -I/usr/lib64/glib/include  -lgthread -lpthread -lglib
Run Code Online (Sandbox Code Playgroud)