有些时候你的工程会用到第三方库,比如你会用到一个叫libxxx库,,编译和安装后,你通常会在
- /usr/local/lib
和
- /usr/local/include/
目录下发现有xxx/目录,但是很多时候你在代码中引用libxxx库的头文件时,声明如下:
- #include <xxx.h>
- fatal error: xxx.h: 没有那个文件或目录
- error: 对'xxx_read'未定义的引用
这时候的解决方法可能是在编译器后面加上-I(注:大写的i)和-L,但是如果该库提供了一个libxxx.pc配置文件时,并且在
- /usr/local/pkgconf/
- cc file.c -o file `pkg-config --cflag --libs libxxx`
上面是一个抽象的命令,注意灵活使用。pkg-config就会在
- /usr/local/pkgconf/
- 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: fulinux@sina.com