5

単純なプロジェクトを Qt 5 に移行しようとしています。このプロジェクトはもともと Qt 4 用に作成されたもので、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 に答える
1

私は同じ問題を抱えていました。プロジェクトのクリーニング(Qt->ビルドから)を解決し、以下を追加しました:

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 に答える