linux c 查找使用庫(kù)的cflags與libs的方法詳解
更新時(shí)間:2013年05月27日 15:23:42 作者:
本篇文章是對(duì)在linux中使用c語(yǔ)言查找使用庫(kù)的cflags與libs的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
很多時(shí)候,使用一些特別的庫(kù), 在編譯可執(zhí)行程序時(shí), 需要添加額外的 CFLAGS 和 LIBS . 否則會(huì)提示找不到指定的頭文件或者"undefined reference to ..." 的錯(cuò)誤信息.
假如程序 test.c 中使用了 libxml 的 api, 直接
$ gcc -Wall -o test test.c
會(huì)提示錯(cuò)誤消息.
執(zhí)行
$ 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
因此, 在編譯時(shí), 只需要執(zhí)行
$ gcc -Wall `pkg-config libxml-2.0 --cflags --libs` -o test test.c
假如程序 test.c 中使用了 libxml 的 api, 直接
復(fù)制代碼 代碼如下:
$ gcc -Wall -o test test.c
會(huì)提示錯(cuò)誤消息.
執(zhí)行
復(fù)制代碼 代碼如下:
$ ls /usr/lib/pkgconfig/ | grep libxml
libxml-2.0.pc
復(fù)制代碼 代碼如下:
$ 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 即是所需要的信息. 可以用如下命令得到
復(fù)制代碼 代碼如下:
$ pkg-config libxml-2.0 --cflags --libs
-I/usr/include/libxml2 -lxml2 -lz -lm
因此, 在編譯時(shí), 只需要執(zhí)行
復(fù)制代碼 代碼如下:
$ gcc -Wall `pkg-config libxml-2.0 --cflags --libs` -o test test.c
您可能感興趣的文章:
- linux find下如何統(tǒng)計(jì)一個(gè)目錄下的文件個(gè)數(shù)以及代碼總行數(shù)的命令
- linux的一個(gè)find命令配合rm刪除某天前的文件方法
- linux使用find和crontab命令定期清理過(guò)期文件
- 淺談Linux下通過(guò)find命令進(jìn)行rm文件刪除的小技巧
- Linux中文件查找方法大全
- Linux查找包含指定文字的文件(linux查找指定文件)
- Linux下如何使用grep命令查找?guī)в衪ab(退格)的字符
- 簡(jiǎn)單的Linux查找后門(mén)思路和shell腳本分享
- Linux中文件查找技術(shù)大全
- Linux中find命令的用法入門(mén)
相關(guān)文章
C語(yǔ)言中scanf與scnaf_s函數(shù)詳解
大家好,本篇文章主要講的是C語(yǔ)言中scanf與scnaf_s函數(shù)詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01
C語(yǔ)言實(shí)現(xiàn)模擬USB對(duì)8bit數(shù)據(jù)的NRZI編碼輸出
今天小編就為大家分享一篇關(guān)于C語(yǔ)言實(shí)現(xiàn)模擬USB對(duì)8bit數(shù)據(jù)的NRZI編碼輸出,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
C語(yǔ)言實(shí)現(xiàn)撲克牌計(jì)算24點(diǎn)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言如何實(shí)現(xiàn)撲克牌計(jì)算24點(diǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
C++20 特性 協(xié)程 Coroutines(1)
這篇文章主要給大家分享得是C++20 得特性 協(xié)程 Coroutines,下面文章內(nèi)容我們將來(lái)具體介紹什么是協(xié)程,協(xié)程得好處等知識(shí)點(diǎn),需要的朋友可以參考一下2021-10-10
C++ Boost Algorithm算法超詳細(xì)精講
Boost.Algorithm 提供了補(bǔ)充標(biāo)準(zhǔn)庫(kù)算法的算法。與 Boost.Range 不同,Boost.Algorithm 沒(méi)有引入新概念。 Boost.Algorithm 定義的算法類(lèi)似于標(biāo)準(zhǔn)庫(kù)中的算法2022-10-10
C++面試八股文之override和finial關(guān)鍵字有何作用
C++11中的override和final關(guān)鍵字是為了增強(qiáng)代碼的編譯時(shí)類(lèi)型檢查和面向?qū)ο笤O(shè)計(jì)中的繼承機(jī)制,下面這篇文章主要給大家介紹了關(guān)于C++面試八股文之override和finial關(guān)鍵字有何作用的相關(guān)資料,需要的朋友可以參考下2023-06-06

