給 C工程新增庫依賴的幾種方法

2021-06-17 21:54:56 字數 1404 閱讀 2068

示例**:

c**  

#include 

#include 

int main()  

else   

}  

在例項**中存在libxml庫的依賴,

對於一般的c工程來說我們可以通過下面三種方式來新增libxml庫的依賴:

1.使用pkg-config

a. 在

configure.ac (或者

configure.in

)中新增如下巨集:

m4**  

pkg_check_modules(xml, libxml-2.0 >= 2.4)  

./configure 時會去確認

libxml-2.0的版本號,大於或者等於2.4。

libxml-2.0 是依賴庫的庫名,可以通過命令 

pkg-config --list-all 檢視當前所有的

pkg-config支援庫。

b. 在 makefile.am 中新增如下巨集:

m4**  

tut_prog_cppflags = $(xml_cflags)  

tut_prog_ldflags= $(xml_libs)  

其中tut_prog是程式名,$(xml_cflags) 和 $(xml_libs)就是對應的依賴庫。

2.使用autoconf工具提供的巨集

在/usr/share/aclocal 中有很多用m4寫好的巨集,我們可以找到libxml對應的 

/usr/share/aclocal/libxml.m4。

a. 在

configure.ac (或者

configure.in

)中新增如下巨集:

m4**  

am_path_xml2(2.4.0)  

b. 在 makefile.am 中新增如下巨集:

m4**  

tut_prog_cppflags = $(xml_cppflags)  

tut_prog_ldflags= $(xml_libs)  

注意:這裡的$(xml_cppflags)和第一點不同,是在libxml.m4中有定義的巨集。

如果在/usr/share/aclocal/中找不到對應的m4巨集,你可以去這裡

看看,也許已經有人寫好了一些常用的m4巨集。

3.手動指定依賴庫的路徑

在 makefile.am 中新增如下**:

m4**  

tut_prog_cppflags = -i /usr/include/libxml2  

tut_prog_ldflags= -lxml2  

給 C工程新增庫依賴的幾種方法

示例 include include int main else 在例項 中存在libxml庫的依賴,對於一般的c工程來說我們可以通過下面三種方式來新增libxml庫的依賴 1.使用pkg config a.在 configure.ac 或者 configure.in 中新增如下巨集 pkg che...

C gdal給影像新增金字塔的幾種方法

gdaladdo input file.tif 2 4 8 16 官方文件 cplerr gdaldataset buildoverviews const char pszresampling,int noverviews,int panoverviewlist,int nlistbands,int...

解決RPM包依賴的幾種方法

前言 常用rpm的朋友們都知道,rpm簡單易用,但是它的依賴關係是最頭疼的!有時候比方說a包需要b包,b包需要c包,c包需要a包,好了。這就是最常見的死鎖了 類似資料庫有木有?這個時候有以下幾種方式可以解決 a 強制安裝 暴力型 使用rpm i force nodeps 強制安裝。忽略依賴關係。這種...