Не могу включить файлы LibXML2 в проект CMake C++ (используя IDE QtCreator)

Я работаю над проектом 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 файл в моей системе в любом месте, и я не мог найти его в Интернете.

0 ответов

Другие вопросы по тегам