Невозможно скомпилировать при использовании libxml - PullRequest
8 голосов
/ 05 апреля 2011

У меня есть исходный файл, который я могу запустить через терминал, используя

gcc source.c -I/usr/include/libxml2 -lxml2 -o output

но когда я #include исходный файл, который включает исходные файлы libxml, компилятор жалуется, что libxml/xmlmemory.h:, libxml/parser.h:, libxml/xpath.h не может быть найден: такого файла или каталога нет.

Ответы [ 3 ]

6 голосов
/ 05 апреля 2011

Вам всегда нужно сохранять -I/usr/include/libxml2 в вашем выражении gcc, чтобы он мог найти заголовочные файлы.

3 голосов
/ 08 июля 2012

Вы также можете использовать xml2-config --cflags --libs, чтобы получить флаги компиляции для добавления.

kjp@vbox:~/Dev/ScratchDir$ xml2-config --cflags --libs
-I/usr/include/libxml2
-lxml2
kjp@vbox:~/Dev/ScratchDir$
0 голосов
/ 05 апреля 2011

Похоже, что источник ссылается на libxml, а не на libxml2 Можете ли вы убедиться, что

/usr/include/libxml2/libxml/xmlmemory.h

действительно доступен?(попробуйте просмотреть его)

Вы не компилируете заголовки, заголовки просто должны быть доступны как «описание» того, что библиотеки реализуют

...