2014-02-16 6 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 с самого начала и добавление 'набор (CMAKE_INCLUDE_CURRENT_DIR ON)' , Должно быть, это была проблема с кэшированной версией CMake. – Steven

+1

Рекомендуется всегда делать это и создавать sscce, прежде чем отправлять вопрос, на который никто не сможет ответить, пока вы этого не сделаете. – steveire

Смежные вопросы