2014-02-16 94 views
1

我真的很困惑与Qt5和Cmake。我有一切工作,但后来我清理我的建立目录,然后突然一切停止工作。我有以下CMakeListsQt5 Cmake无法解决它

cmake_minimum_required(VERSION 2.8.8) 

add_definitions(-DVERSION="0.0.0.1") 

project(pocket) 

set(SOURCE 
    gui/LoginDialog.cpp 
    main.cpp 
) 

set(HEADERS 
    gui/LoginDialog.h 
) 

set(FORMS 
    gui/LoginDialog.ui 
) 

set(RESOURCES 
    resources/images.qrc 
) 

find_package(Qt5Widgets) 

qt5_wrap_cpp(HEADERS_MOC ${HEADERS}) 
qt5_wrap_ui(FORMS_HEADERS ${FORMS}) 
qt5_add_resources(RESOURCES_RCC ${RESOURCES}) 

include_directories(${CMAKE_CURRENT_BINARY_DIR}) 

add_executable(Test ${SOURCE} ${HEADERS_MOC} ${FORMS_HEADERS} ${RESOURCES_RCC}) 
qt5_use_modules(Test Widgets) 

我的问题是,它没有做*.ui -> ui_*.h转换,所以后来我的.cpp文件,其中包括我的表单UI的失败,(ui_*.h没有这样的文件或directory`)

编译

任何想法我失踪?

回答

3

您错过了sscce。我可以写一个简单的情况与此的作品:

find_package(Qt5Widgets) 

qt5_wrap_ui(uis somefile.ui) 
add_executable(Test ${uis} foo.cpp) 
+1

我结束了删除我的身材,关闭Qt Creator中,然后从一开始重做我的CMakeLists.txt并加入了'set(CMAKE_INCLUDE_CURRENT_DIR ON)解决吧' 。这肯定是一个缓存CMake的问题。 – Steven

+1

在发布问题之前,始终这样做并创建sscce是个不错的主意,除非您这样做,否则无人可以回答。 – steveire