Я работаю над проектом C ++ на Cmake в QtCreator. Я пытаюсь использовать mlpack в моем проекте, но как только я включаю строку #include <mlpack/core.hpp>
к моему единственному исходному файлу я получаю сообщение об ошибке, касающееся некоторых файлов libxml, которые включены в mlpack / core.hpp:
In file included from /usr/local/include/mlpack/core/util/save_restore_utility.hpp:26:0,
from /usr/local/include/mlpack/core.hpp:171,
from /home/revinci/code/workspaces/qt_ws/Semantic_Perception/src/features_slic.cpp:18:
/usr/include/libxml2/libxml/parser.h:15:31: fatal error: libxml/xmlversion.h: No such file or directory
#include <libxml/xmlversion.h>
Теперь я вошел в /usr/include/libxml2/libxml/
и нашел parser.h
с линией #include <libxml/xmlversion.h>
в этом.
Итак, я увидел, что xmlversion.h
а также parser.h
находятся в той же папке и попытались взломать: я изменил #include <libxml/xmlversion.h>
в parser.h
в #include "xmlversion.h"
только чтобы получить следующую ошибку:
In file included from /usr/include/libxml2/libxml/parser.h:15:0,
from /usr/local/include/mlpack/core/util/save_restore_utility.hpp:26,
from /usr/local/include/mlpack/core.hpp:171,
from /home/revinci/code/workspaces/qt_ws/Semantic_Perception/src/features_slic.cpp:18:
/usr/include/libxml2/libxml/xmlversion.h:13:31: fatal error: libxml/xmlexports.h: No such file or directory
#include <libxml/xmlexports.h>
Который в основном говорит мне, что не может найти xmlexports.h
(включено xmlversion.h
). Важнее, xmlexports.h
находится в том же каталоге, что и xmlversion.h
а также parser.h
!
Я пробовал упомянутое решение Вот и установлен libxml2-dev
(снова) и libxslt1-dev
, но моя проблема не была решена.
Я думаю, что это может быть связано с правильным указанием моих путей включения. Я пытался добавить /usr/include/libxml2
к различным переменным окружения пути (PATH
, INCLUDE_PATH
а также CPATH
), которые присутствуют в моей среде сборки в QtCreator, но безрезультатно. мой CMakeLists.txt
выглядит так:
project(Semantic_Perception)
cmake_minimum_required(VERSION 2.8)#Vigra Headers
include_directories(
include
)
file(GLOB_RECURSE VigraImpex include/impex/)
add_library(VigraImpex ${VigraImpex})
#LibXml2 Headers
find_package(LibXml2 REQUIRED)
#Armadillo Headedrs
find_package(Armadillo REQUIRED)
include_directories(${ARMADILLO_INCLUDE_DIRS})
#Boost Headers
find_package(Boost 1.54.0 REQUIRED)add_executable(features_slic src/features_slic.cpp)
target_link_libraries(features_slic
VigraImpex
${ARMADILLO_LIBRARIES}
)
Кстати: LibXml2, Armadillo и Boost являются зависимостями библиотеки, которую я пытаюсь использовать — mlpack. Команда find_pakcage(mlpack)
не будет работать, потому что нет Findmlpack.cmake
файл в моей системе в любом месте, и я не мог найти его в Интернете.
Задача ещё не решена.
Других решений пока нет …