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

2021-08-30 10:38:10 字數 1312 閱讀 3183

示例**:

#include #include int main()

else

}

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

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

1.使用pkg-config

a. 在

configure.ac (或者

configure.in

)中新增如下巨集:

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 中新增如下巨集:

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

)中新增如下巨集:

am_path_xml2(2.4.0)
b. 在 makefile.am 中新增如下巨集:

tut_prog_cppflags = $(xml_cppflags)

tut_prog_ldflags= $(xml_libs)

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

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

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

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

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

tut_prog_cppflags = -i /usr/include/libxml2

tut_prog_ldflags= -lxml2

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

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

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 強制安裝。忽略依賴關係。這種...