有些时候你的工程会用到第三方库,比如你会用到一个叫libxxx库,,编译和安装后,你通常会在
/usr/local/lib
和
/usr/local/include/
目录下发现有xxx/目录,但是很多时候你在代码中引用libxxx库的头文件时,声明如下:
#include <xxx.h>
你的代码写好后,你编译时会出现:
fatal error: xxx.h: 没有那个文件或目录
亦或者是:
error: 对‘xxx_read‘未定义的引用
其中,xxx_read为libxxx库中的某一个函数。
这时候的解决方法可能是在编译器后面加上-I(注:大写的i)和-L,但是如果该库提供了一个libxxx.pc配置文件时,并且在
/usr/local/pkgconf/
目录下安装了这个libxxx.pc配置文件,这时你只需要使用如下命令:
cc file.c -o file `pkg-config --cflag --libs libxxx`
上面是一个抽象的命令,注意灵活使用。pkg-config就会在
/usr/local/pkgconf/
目录下面找到到libxxx.pc,文件,该文件内容类似:
prefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: xxx Description: xxx library Version: 1.0.0 Libs: -L${libdir} -lxxx Cflags: -I${includedir}/xxx
可以参考一下博文:
author: fulinux
E-mail: [email protected]
blog: http://blog.csdn.net/fulinus
code: https://git.oschina.net/fulinux
时间: 2024-10-07 16:01:40