我试图在Qt上用Linux构建一个应用程序,我可以在其中设置Cursor位置。该项目由CMake管理。
的CMakeLists.txt:
cmake_minimum_required(VERSION 2.8.4)
project(Project)
add_definitions(-std=gnu++14 -std=c++14 -Wall -Wextra)
set(CMAKE_PREFIX_PATH "/home/elmewo/Libraries/Qt/5.3/gcc_64")
set(CMAKE_AUTOMOC ON)
find_package(Qt5Core REQUIRED)
find_package(Qt5Quick REQUIRED)
find_package(Qt5Gui REQUIRED)
include_directories(${CMAKE_SOURCE_DIR}/src)
set(SOURCE_FILES src/main.cpp)
add_executable(Project ${SOURCE_FILES})
qt5_use_modules(Project Core Quick Gui)
包裹由CMake找到。但是当我试着
时#include <QCursor>
我的编译器说
fatal error: QCursor: file or directory not found
我能够在同一台机器上编译另一个基本的QGuiApplication。
QCursor文件位于$ {CMAKE_PREFIX_PATH} / include / QtGui。
我错过了什么吗?
答案 0 :(得分:1)
您似乎依赖于2.8.4,所以至少您需要更改构建规则based on this或者您需要将依赖项升级到至少cmake版本2.8.9:
使用Qt 5和CMake早于2.8.9
如果使用CMake早于2.8.9,则qt5_use_modules宏不可用。试图使用它会导致错误。
要将Qt 5与版本低于2.8.9的CMake一起使用,必须使用target_link_libraries,include_directories和add_definitions命令,并使用qt5_generate_moc或qt5_wrap_cpp手动指定moc要求:
因此,如果您坚持使用旧的cmake,请添加这些:
# Add the include directories for the Qt 5 Widgets module to
# the compile lines.
include_directories(${Qt5Core_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Quick_INCLUDE_DIRS})
#Link the helloworld executable to the Qt 5 widgets library.
target_link_libraries(helloworld Qt5::Core Qt5::Gui Qt5::Quick)