Compiler can't find libxml/parser.h

筅森魡賤 提交于 2019-11-27 05:56:30

问题


I am on Debian 8 (Jessie), 64 Bit. I installed libxml2-dev, which now sits in /usr/include/libxml2/libxml.

But when I do (just like libxml docs say)

#include <libxml/parser.h>

I only get when compiling (with gcc)

fatal error: libxml/parser.h: no such file or directory

Notes: On another machine, with an old 64 Bit Suse, where libxml2-dev sits in the exact same path and no other environment vars are set compared to the new Debian, it works perfectly fine. Problem occured while migrating from one to another computer using the exact same makefiles. All other -dev libs that I need just worked (with their documented #include <path>) after the migration (they were all installed with apt-get), only libxml2-dev is not found on compilation.

Do I need to do anything else to make libxml2-dev visible?


回答1:


Try to compile with explicite inclusion where the parser.h file is, i.e. smth like this

g++ -I/usr/include/libxml2/


Following environment variables can also be used for lookup of header files

CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH

Find more information here




回答2:


if you installed it: sudo apt-get install libxml2-dev libxml2-doc go into /usr/include/libxml2 and copy or move all content from that folder on a level below: cp -R libxml/ ../ After this for me it works.




回答3:


You should use pkg-config to pass parameters to compiler. Like this

g++ `pkg-config --cflags libxml-2.0` example.c -o example.o

and to linker:

g++ `pkg-config --libs libxml-2.0` example.o -o example


来源:https://stackoverflow.com/questions/29847814/compiler-cant-find-libxml-parser-h

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!