我编译并安装了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库的路径。
我重新编译了我的项目,但我仍然总是遇到相同的链接器错误。
请您帮我解决这些链接器错误。
问候。
答案 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