5

我正在尝试将一个简单的项目迁移到 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 编译时它没有生成。


笔记

这也发生在新创建的项目上。

重现步骤:

  1. 在 Qt Creator + Qt 4 下创建新项目。
  2. 将项目复制到另一台安装了 Qt Creator + Qt 5 的机器上。
  3. 打开项目,在修复一些初始错误后,会弹出这个错误。
4

4 回答 4

7

最后对我有用的是删除 Debug 和 Release 构建文件夹。奇怪的是我最初并没有复制它们,所以我不知道为什么它有助于在它们首次创建后删除它们。

但如果有人遇到此问题,请尝试删除 Debug 和 Release 文件夹以及 .user 文件。这应该会强制 Qt Creator 重新配置您的项目。

于 2015-02-13T16:10:54.780 回答
2

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})
于 2018-01-08T07:55:26.383 回答
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})
于 2018-04-14T01:29:21.347 回答
1

好吧,这是非常奇怪和耐心的测试错误,几天前我的工作代码开始显示此错误时也发生了这种情况,我不确定,但对我来说这是由于我的 mainwindow.ui 和 mainwindow.qrc没有编译所以我采取以下步骤

  1. 编译了 mainwindow.ui (在解决方案资源管理器中右键单击 mainwindow.ui 文件并选择 compile )它给出了 C:\Qt1\5.9\msvc2017_64\lib\rcc.exe 那个目标中缺少的东西,所以我去了C:\Qt1\5.9\msvc2015_64\bin,将 rcc.exe 从 C:\Qt1\5.9\msvc2015_64\bin 复制并粘贴到 C:\Qt1\5.9\msvc2017_64\lib
  2. 再次编译这两个文件并再次构建代码
  3. 没有错误就是它。
于 2019-07-18T09:31:35.550 回答