linux c 查找使用库的 cflags 和 libs

很多时候,使用一些特别的库, 在编译可执行程序时, 需要添加额外的 CFLAGS 和 LIBS . 否则会提示找不到指定的头文件或者"undefined reference to ..." 的错误信息.

假如程序 test.c 中使用了 libxml 的 api, 直接

$ gcc -Wall -o test test.c
会提示错误消息.  
执行
$ ls /usr/lib/pkgconfig/ | grep libxml
libxml-2.0.pc
$ cat /usr/lib/pkgconfig/libxml-2.0.pc 
prefix=/usr
exec_prefix=/usr
libdir=/usr/lib
includedir=/usr/include
modules=1

Name: libXML
Version: 2.6.26
Description: libXML library version2.
Requires:
Libs: -L${libdir} -lxml2  -lz  -lm 
Cflags: -I${includedir}/libxml2 
其中, Libs 和 Cflags 即是所需要的信息. 可以用如下命令得到
$ pkg-config libxml-2.0 --cflags --libs
-I/usr/include/libxml2  -lxml2 -lz -lm
因此, 在编译时, 只需要执行
$ gcc -Wall `pkg-config libxml-2.0 --cflags --libs` -o test test.c

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值