未定义的引用gzdopen,gzclose,gzread

时间:2017-01-27 16:04:38

标签: zlib libxml2 undefined-reference

我编译并安装了2.2.7.2版本的libxml。在编译时,我有这样的错误:Makefile:755:目标的配方' install-data-local'失败。但是正确生成了lib文件(libxml2.a和libxml2.so)。 我想在C项目中使用libxml2,所以我编辑了我的makefile以集成lib文件(libxml2.a和libxml2.so)。 问题是,当我编译我的项目时,我得到以下错误: /libxml2.a(xmlIO.o):在函数xmlGzfileRead': undefined reference to gzdopen' /libxml2.a(xmlIO.o):在函数xmlGzfileRead': undefined reference to gzclose' /libxml2.a(xmlIO.o):在函数xmlGzfileRead': undefined reference to gzread' ...等等 似乎我必须安装zlib库才能解决此链接器错误。我安装了zlib库并编辑了LD_LIBRARY_PATH,以便添加zlib库的路径。 我重新编译了我的项目,但我仍然总是遇到相同的链接器错误。

请您帮我解决这些链接器错误。

问候。

1 个答案:

答案 0 :(得分:0)

请参阅libxml2 FAQ

  

使用libxml2编译或链接程序的麻烦

     

通常问题来自于编译器没有获得正确的编译或链接标志这一事实。有一个小的shell脚本xml2-config,作为libxml2常规安装过程的一部分安装,提供这些标志。使用

xml2-config --cflags
     

获取编译标志和

xml2-config --libs
     

获取链接器标志。通常这可以直接从Makefile中完成:

CFLAGS=`xml2-config --cflags`

LIBS=`xml2-config --libs`

在我当前的系统上,xml2-config --libs的输出是

-lxml2 -lz -lpthread -licucore -lm