有些時候你的工程會用到第三方庫,比如你會用到一個叫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: [email protected]