pkg-config

pkg-config可以向configure和make传递include path和library path。


pkg-config --list 列出所有已安装的共享库

pkg-config --cflags 可以给出编译时所需要的选项,(包括指定共享库的头文件位置)

pkg-config --libs 可以给出链接时的选项,(包括列出指定共享库的lib路径)

pkg-config_第1张图片

比如你要编译sample.c使用到了glib库,那么可以这样

gcc sample.c -o sample 'pkg-config --cflags --libs glib-2.0'


pkg-config --cflags --libs glibc-2.0直接可以找到相应的头文件和库文件的位置。

如果是用到了其他的库,涉及到X.pc,那么库文件名字就叫X,比如libusb-1.0.pc代表的就是libusb-1.0库。

如果libusb-1.0不在标准路径下,那么这样gcc sample.c -o sample `PKG_CONFIG_PATH=path pkg-config --cflags --libs libusb-1.0`



pkg-config默认会在/usr/lib/pkgconfig/目录下查找所有的.pc文件,当找不到到时候会去到环境变量PKG_CONFIG_PATH查找所有的.pc文件,根据.pc文件返回头文件、库文件位置等各种参数给编译器使用。

库编译完成后,会在{installed_home/lib/}下产生一个名为pkgconfig的目录,内含该链接库的.pc文件,将包含.pc的路径添加到环境变量PKG_CONFIG_PATH中,就可以让pkg-config在这些路径的.pc文件中查找到你自己编译库的头文件和库文件到位置。

export PKG_CONFIG_PATH=/installed_home/lib/pkgconfig:$PKG_CONFIG_PATH


程序运行时

export LD_LIBRARY_PATH=/path/lib:$LD_LIBRARY_PATH以便应用程序可以查找到库文件的位置。


你可能感兴趣的:(pkg-config)