我正在尝试将一个简单的项目迁移到Qt 5.该项目最初是为Qt 4编写的,它在那里编译得很好。
然而,当使用Qt 5进行编译时,我收到此错误:
error: C1083: Cannot open include file: 'ui_mainwindow.h': No such file or directory
现在我知道ui_mainwindow.h应该在编译时自动生成,并且我已经检查过并且在使用Qt 5编译时没有生成它。
注意
这也发生在新创建的项目上。
重现的步骤:
答案 0 :(得分:5)
最终对我有用的是删除Debug和Release构建文件夹。奇怪的是我最初没有复制它们,所以我不知道为什么它们在首次创建后有助于删除它们。
但如果有人遇到此问题,请尝试删除Debug和Release文件夹以及.user文件。这应该迫使Qt Creator重新配置你的项目。
答案 1 :(得分:1)
当我使用cmake而不是qmake构建我的项目时出现此错误, 我通过添加:
在cmake中解决了它FILE(GLOB UIs *.ui)
# to generate header files for .ui files
qt5_wrap_ui(UI_HEADERS ${UIs})
答案 2 :(得分:1)
我有同样的问题;解决了清理项目(从Qt-> Build)并添加:
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
例如,这是我的CMakeLists.txt运作良好:
#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})
答案 3 :(得分:1)
这是一个非常奇怪且耐心的测试错误,几天前我的工作代码开始显示此错误时也发生在我身上,我不确定,但对我而言,这是由于我的mainwindow.ui和mainwindow.qrc未编译,因此我采取以下步骤