我正在尝试使用libxml2来解析C中的一些XML文件。为此,在安装libxml2开发包之后,我将这些行包含在我的code.c文件中:
#include <libxml2/libxml/parser.h>
#include <libxml2/libxml/tree.h>
好的,到目前为止一切都很好......但是当我编译代码时,
gcc ../src/code.c -o App
我通过gcc收到了这条消息:
/usr/local/include/libxml2/libxml/parser.h:15:31: fatal error: libxml/xmlversion.h: No such file or directory
#include <libxml/xmlversion.h>
^
compilation terminated.
我的code.c中包含的parser.h文件找不到包含路径“libxml / xmlversion.h”,我收到了错误消息。
我尝试使用-I参数编译传递库路径,但没有成功。
请大家,我该怎么解决这个问题?
答案 0 :(得分:1)
更改
#include <libxml2/libxml/parser.h>
#include <libxml2/libxml/tree.h>
到
#include <libxml/parser.h>
#include <libxml/tree.h>
并将选项-I/usr/local/include/libxml2
添加到用于编译的命令中。
答案 1 :(得分:1)
实际上,如果libxml2
是系统问题(开发包),那么pkg-config
可能已知它,因此编译和链接(单个源文件程序)的正确方法是:
gcc -Wall -g $(pkg-config --cflags libxml-2.0) \
../src/code.c \
$(pkg-config --libs libxml-2.0) \
-o App
当然,您只需要#include <libxml/parser.h>
等...... answered by alk
您真的应该使用GNU make并使用Makefile
,请参阅this example(以适应C而不是C ++,因此CFLAGS
代替CXXFLAGS
并且CC
代替CXX
...)
习惯于在开发阶段始终使用所有警告-Wall
和调试信息-g
进行编译。