linux c 查找使用库的cflags与libs的方法详解

 更新时间:2013年05月27日 15:23:42   作者:  
本篇文章是对在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

相关文章

  • 利用C/C++实现贪吃蛇游戏

    利用C/C++实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了利用C/C++实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • c++实现二路归并排序的示例代码

    c++实现二路归并排序的示例代码

    这篇文章主要介绍了c++实现二路归并排序的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • C语言中scanf与scnaf_s函数详解

    C语言中scanf与scnaf_s函数详解

    大家好,本篇文章主要讲的是C语言中scanf与scnaf_s函数详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • 一文带你学习C++中的虚函数

    一文带你学习C++中的虚函数

    C++中的虚函数是一种非常重要的概念,它允许一个子类重写基类的方法,并确保在调用基类指针或引用的方法时,调用正确的子类方法,本文将介绍C++虚函数的基本概念、语法、使用及其示例,需要的朋友可以参考下
    2023-05-05
  • C语言实现模拟USB对8bit数据的NRZI编码输出

    C语言实现模拟USB对8bit数据的NRZI编码输出

    今天小编就为大家分享一篇关于C语言实现模拟USB对8bit数据的NRZI编码输出,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C语言实现扑克牌计算24点

    C语言实现扑克牌计算24点

    这篇文章主要为大家详细介绍了C语言如何实现扑克牌计算24点,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • C++20 特性 协程 Coroutines(1)

    C++20 特性 协程 Coroutines(1)

    这篇文章主要给大家分享得是C++20 得特性 协程 Coroutines,下面文章内容我们将来具体介绍什么是协程,协程得好处等知识点,需要的朋友可以参考一下
    2021-10-10
  • C++ Boost Algorithm算法超详细精讲

    C++ Boost Algorithm算法超详细精讲

    Boost.Algorithm 提供了补充标准库算法的算法。与 Boost.Range 不同,Boost.Algorithm 没有引入新概念。 Boost.Algorithm 定义的算法类似于标准库中的算法
    2022-10-10
  • 老程序员教你一天时间完成C++俄罗斯方块游戏

    老程序员教你一天时间完成C++俄罗斯方块游戏

    俄罗斯方块游戏大家应该非常熟悉,非常经典的一款游戏,本文来详细讲解下俄罗斯方块游戏的制作过程,赶紧来看下吧!希望能给你带来帮助
    2021-08-08
  • C++面试八股文之override和finial关键字有何作用

    C++面试八股文之override和finial关键字有何作用

    C++11中的override和final关键字是为了增强代码的编译时类型检查和面向对象设计中的继承机制,下面这篇文章主要给大家介绍了关于C++面试八股文之override和finial关键字有何作用的相关资料,需要的朋友可以参考下
    2023-06-06

最新评论