qt5 cmake没有automoc

时间:2015-10-05 21:53:20

标签: cmake qt5

我不明白 我在qt5 cmake指南后做了一个小例子。 这是一个很小的例子。

cmake_minimum_required(VERSION 2.8.11)

project(basic_qt_gui)

set(CMAKE_PREFIX_PATH "/opt/qt5_5_0/5.5/gcc_64")

# 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(Qt5Widgets)
find_package(Qt5Core)
find_package(Qt5Gui)

set(BASIC_QT_GUI_HEADERS mainwindow.h)
set(BASIC_QT_GUI_SOURCES main.cpp
                         mainwindow.cpp)

# Tell CMake to create the helloworld executable
add_executable(basic_qt_gui ${BASIC_QT_GUI_HEADERS} ${BASIC_QT_GUI_SOURCES})

# Use the Widgets module from Qt 5.
target_link_libraries(basic_qt_gui Qt5::Widgets)

之后我总是得到这个错误

[ 25%] Automoc for target basic_qt_gui
Generating moc_mainwindow.cpp
[ 25%] Built target basic_qt_gui_automoc
Scanning dependencies of target basic_qt_gui
[ 50%] Building CXX object CMakeFiles/basic_qt_gui.dir/main.cpp.o
[ 75%] Building CXX object CMakeFiles/basic_qt_gui.dir/mainwindow.cpp.o
/home/gatherer/Dokumente/gitHubProjekte/basic_qt_gui/mainwindow.cpp:2:27:  fatal error: ui_mainwindow.h: No such file or directory
#include "ui_mainwindow.h"
                       ^
compilation terminated.
make[2]: *** [CMakeFiles/basic_qt_gui.dir/mainwindow.cpp.o] Error 1
make[1]: *** [CMakeFiles/basic_qt_gui.dir/all] Error 2
make: *** [all] Error 2

我环顾四周但是找不到错误。 我使用CMake 2.8.12和qt5.5.0

编辑:解决..安装cmake 3.2.2并添加

  set(CMAKE_AUTOUIC ON)

这解决了这个问题。 2.8.12是真正有线的版本

1 个答案:

答案 0 :(得分:1)

根据我的理解,从.ui文件生成ui_ *标头与moc无关。 Documentation for CMAKE_AUTOMOC表示它为包含Q_OBJECT注释或moc_ *包含的文件制作了CMake run moc工具。

我猜你需要的是qt5_wrap_ui()宏。