2016-07-22 5 views
1

У меня есть заголовочный файл C++, который имеет следующие строки:CMake не может найти QXmlSimpleReader

#include <QXmlSimpleReader> 
#include <QXmlDefaultHandler> 

и мой CMake имеет следующие строки:

find_package(Qt5Core REQUIRED) 
find_package(Qt5Widgets REQUIRED) 
find_package(Qt5Xml REQUIRED) 

При запуске CMake я получаю следующее сообщение об ошибке :

QXmlSimpleReader: No such file or directory 
#include <QXmlSimpleReader> 

Что я делаю неправильно?

+2

Можете ли вы опубликовать все содержимое вашего CMake? Какова ваша версия cmake? – wasthishelpful

ответ

1

Я думаю, вы забыли связать с Qt5xml. Рабочий пример из documentation для CMake 2.8.11 и позже, модифицированных для связи с Qt5Xml:

cmake_minimum_required(VERSION 2.8.11) 

project(testproject) 

# Find includes in corresponding build directories 
set(CMAKE_INCLUDE_CURRENT_DIR ON) 
# Instruct CMake to run moc automatically when needed. 
set(CMAKE_AUTOMOC ON) 

# Find the QtWidgets library 
find_package(Qt5Xml) 

# Tell CMake to create the helloworld executable 
add_executable(helloworld WIN32 main.cpp) 

# Use the Widgets module from Qt 5. 
target_link_libraries(helloworld Qt5::Xml) 
+0

У него компиляция вопроса, а не связывание – Ation

+0

. Целевые_информации_и_компьютеров управляют включением путей в современный cmake: если он не был вызван, также будут отсутствовать пути включения -> компиляция вопроса – wasthishelpful

+0

Ничего себе, никогда не слышал об этой функции. Найти пакет может обновить, включая dirs, с другой стороны. Любая ссылка для чтения? Не удалось найти упоминания в документах cmake. – Ation

1

По какой-то причине это сделать не добавляет к проекту включает в себя каталоги.

Добавить этот вашему CMake

INCLUDE_DIRECTORIES(${Qt5Xml_INCLUDE_DIRS}) 
Смежные вопросы