I'm trying to migrate a simple project to Qt 5. The project was originally written for Qt 4, and it compiles fine there.
When compiling with Qt 5, however, I'm getting this error:
error: C1083: Cannot open include file: 'ui_mainwindow.h': No such file or directory
Now I know that ui_mainwindow.h should be auto-generated when compiling, and I've checked and it is not being generated when compiling with Qt 5.
Note
This happens on a newly created project as well.
Steps to reproduce:
- Create new project under Qt Creator + Qt 4.
- Copy project to another machine where Qt Creator + Qt 5 has been installed.
- Open project, after fixing some initial errors this one pops up.
What worked for me in the end was deleting both the Debug and Release build folders. What is strange is that I hadn't copied them initially, so I have no idea why it helped deleting them after they were first created.
But if anyone has this problem, try deleting the Debug and Release folders, as well as the .user file. This should force Qt Creator to reconfigure your project.
I had this error when I used cmake instead of qmake to build my project,
and I solved it in cmake by adding:
FILE(GLOB UIs *.ui)
# to generate header files for .ui files
qt5_wrap_ui(UI_HEADERS ${UIs})
I had the same problem; solved cleaning the project (From Qt->Build) and adding:
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
As an example, this is my CMakeLists.txt working well:
#Specify the minimum version of CMake (3.1 is currently recommended by Qt)
cmake_minimum_required(VERSION 3.1)
# Specify project title
project(challenge_MarcoRuiz)
# To automatically run MOC when building (Meta Object Compiler)
set(CMAKE_AUTOMOC ON)
# To automatically run UIC when building (User Interface Compiler)
set(CMAKE_AUTOUIC ON)
# To automatically run RCC when building (Resource Compiler)
set(CMAKE_AUTORCC ON)
# Specify OpenCV folder, and take care of dependencies and includes
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
# Take care of Qt dependencies
find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)
##
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
# add required source, header, ui and resource files
add_executable(${PROJECT_NAME} "main.cpp" "mainwindow.h" "mainwindow.cpp" "mainwindow.ui" ${UI_HEADERS})
# link required libs
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Widgets ${OpenCV_LIBS} ${UI_HEADERS})