我正在尝试使用 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 参数传递库路径进行编译,但没有成功。
请问各位大侠,我该如何解决?
最佳答案
实际上,如果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
至少在开发阶段。
关于c - 头文件 (.h) 包含 gcc 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25507017/