2016-07-22 7 views
1

Ich habe eine C++ Header-Datei, die die folgenden Zeilen hat:CMake nicht finden können QXmlSimpleReader

#include <QXmlSimpleReader> 
#include <QXmlDefaultHandler> 

und meine Cmake hat die folgenden Zeilen:

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

Wenn CMake laufen bekomme ich folgende Fehlermeldung :

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

Was mache ich falsch?

+2

Können Sie bitte den gesamten Inhalt Ihrer Cmake posten? Was ist deine Version von cmake? – wasthishelpful

Antwort

1

Ich vermute, Sie haben vergessen, gegen Qt5xml zu verknüpfen. Ein Arbeitsbeispiel aus dem documentation für cmake 2.8.11 und modifizierte später gegen Qt5Xml zu verknüpfen:

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

Er kompilieren Problem, nicht verknüpfen – Ation

+0

target_link_libraries verwaltet Pfade in modernen Cmake: Wenn es nicht aufgerufen wurde, werden auch Pfade fehlen -> Kompilierung Problem – wasthishelpful

+0

Wow, noch nie von dieser Funktion gehört. Find package könnte updates enthalten. Jeder Link zum Lesen? Keine Erwähnungen in cmake docs gefunden. – Ation

1

Aus irgendeinem Grund fügt es nicht enthalten dirs zu projizieren.

Fügen Sie diese eine Ihren Cmake

INCLUDE_DIRECTORIES(${Qt5Xml_INCLUDE_DIRS})