質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Qt Creator

Qt Creatorは、Qtアプリケーションを開発するための開発統合環境(IDE)です。

Q&A

解決済

1回答

4701閲覧

ubuntu20.04にQt5.12.8をインストールした環境にてQt-CreaterでQMainWindowが参照できない

miyazato1970

総合スコア2

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Qt Creator

Qt Creatorは、Qtアプリケーションを開発するための開発統合環境(IDE)です。

0グッド

0クリップ

投稿2021/10/26 08:22

編集2021/10/26 11:37

前提・実現したいこと

ubuntu20.04にQt5.12.8(Qt Creator 4.11.0)をインストールしました。
Qt CreatorにてQt Widgets Applicationプロジェクトを新規作成し、
簡単なアプリケーションを作成したいのですが、原因不明のエラーが発生しており
困っています。解決策をご存じの方がいらっしゃいましたらご教授いただけますと
幸いです。

・Qt5.12.8(Qt Creator 4.11.0)インストール手順は以下を実行しました。
sudo apt update && sudo apt upgrade -y
sudo apt install qtbase5-dev qttools5-dev-tools qt5-default
sudo apt install qtcreator

発生している問題・エラーメッセージ

1.Qt Creatorでmainwindow.hを開くと上部に"Warning:The code model could not parse an included file,which might lead to incorrect code completion and highlighting, for example."と表示される。

2."class MainWindow : public QMainWindow"の行番号の左に赤丸が表示され、カーソルを赤丸の上に移動すると"Parse Issue error:expected class name"メッセージが表示される。

該当のソースコード

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();

private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

試したこと

1.sudo apt-get install gcc も追加インストールした(現象変わらず)

2./usr/include/x86_64-linux-gnu/qt5/QtWidgets/QMainWindow が存在することを確認した。

補足情報(FW/ツールのバージョンなど)

関係はないと思いますが、
ubuntu20.04/Qt5.12.8(Qt Creator 4.11.0)の環境はVM Ware Workstation 12 Player(12.5.9)で構築しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuki23

2021/10/28 14:52

コンパイルは出来ますか?
miyazato1970

2021/10/29 05:23

ご確認ありがとうございます。 コンパイルを行うと class MainWindow : public QMainWindow の行で「expected class name」エラーが発生します。 また、Q_OBJECT の行で「incomplete result type 'QString' in function definition」エラーが発生します。 上記以外にも、「Q_OBJECT」、「QT_TR_FUNCTIONS」等macroが参照できていないようなエラーが多数発生しております。
yuki23

2021/10/29 08:23

qt creator のオプションの「kits」「Qtバージョン」「コンパイラ」はそれぞれどのような設定になっていますか?
miyazato1970

2021/10/29 09:50

ご回答ありがとうございます。 qt creaatorのオプションは以下の通りです。 ①kits 自動検出  ▼手動   デスクトップ(既定) ②Qtバージョン  ▼手動   !PATH(qt5)に含まれるQt5.12.8 /usr/lib/qt5/bin/qmake   !PATH(システム)に含まれるQt5.12.8 /usr/lib/qt5/bin/qmake  自動検出 ③コンパイラ  ▼自動検出   ▼C++ Clang(C++,x86 64bit in /usr/bin) タイプ:Clang   ▼C Clang(C,x86 64bit in /usr/bin) タイプ:Clang GCC(C,x86 64bit in /usr/bin) タイプ:GCC  ▼手動    C++    C
miyazato1970

2021/10/29 10:14

追加情報です。 ③コンパイラにてC++の一覧にGCCが表示されていなかったため、これが原因かと思い以下を実施し、再起動しましたが現象は変わりませんでした。 sudo apt install g++ sudo apt install build-essential 上記実施した結果、qt creatorのオプション(③コンパイラ)は以下の通りに変わりました。 ③コンパイラ  ▼自動検出   ▼C++ Clang(C++,x86 64bit in /usr/bin) タイプ:Clang GCC(C++,x86 64bit in /usr/bin) タイプ:GCC   ▼C Clang(C,x86 64bit in /usr/bin) タイプ:Clang GCC(C,x86 64bit in /usr/bin) タイプ:GCC
yuki23

2021/10/29 10:33

言い忘れましたが、エラーメッセージは勝手に省略するのではなく全文を載せてください。
miyazato1970

2021/11/01 08:21

エラーメッセージを省略して掲載してしまい申し訳ございません。以下に全文記載いたします。 これは、新規プロジェクト"NewApp"を作成した直後に"すべてビルド"を実行したときのエラー内容です。 /home/miya/NewApp/mainwindow.h:10: エラー: expected class name /home/miya/NewApp/mainwindow.h:12: エラー: incomplete result type 'QString' in function definition /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h:182: expanded from macro 'Q_OBJECT' /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h:140: expanded from macro 'QT_TR_FUNCTIONS' /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:768: forward declaration of 'QString' /home/miya/NewApp/mainwindow.h:12: エラー: calling 'tr' with incomplete return type 'QString' /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h:182: expanded from macro 'Q_OBJECT' /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h:141: expanded from macro 'QT_TR_FUNCTIONS' /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h:348: 'tr' declared here /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:768: forward declaration of 'QString' /home/miya/NewApp/mainwindow.h:12: エラー: incomplete result type 'QString' in function definition /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h:182: expanded from macro 'Q_OBJECT' /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h:142: expanded from macro 'QT_TR_FUNCTIONS' /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:768: forward declaration of 'QString' /home/miya/NewApp/mainwindow.h:12: エラー: calling 'tr' with incomplete return type 'QString' /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h:182: expanded from macro 'Q_OBJECT' /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h:143: expanded from macro 'QT_TR_FUNCTIONS' /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h:348: 'tr' declared here /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:768: forward declaration of 'QString'
miyazato1970

2021/11/02 04:42 編集

yuki23様からの最初のご質問に対して誤った回答をしておりましたので訂正いたします。混乱するような回答をしてしまい、大変申し訳ございません。 >コンパイルは出来ますか? 「clang++」の場合も、「G++」できておりました。結果は以下の通りです。 当初、ひとつ前の投稿に記載したものがコンパイルエラーだと思っておりましたが、この情報はmainwindow.hを開いたときに出力ペインの「問題」に出力されている内容でした。 13:00:17: 起動中: "/usr/bin/make" -j1 /usr/lib/qt5/bin/uic ../NewApp/mainwindow.ui -o ui_mainwindow.h clang++ -c -pipe -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../NewApp -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-clang -o main.o ../NewApp/main.cpp clang++ -c -pipe -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../NewApp -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-clang -o mainwindow.o ../NewApp/mainwindow.cpp clang++ -pipe -g -std=gnu++11 -Wall -W -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp /usr/lib/qt5/bin/moc -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB --include /home/miya/build-NewApp-unknown-Debug/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-clang -I/home/miya/NewApp -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../NewApp/mainwindow.h -o moc_mainwindow.cpp clang++ -c -pipe -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../NewApp -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-clang -o moc_mainwindow.o moc_mainwindow.cpp clang++ -ccc-gcc-name g++ -o NewApp main.o mainwindow.o moc_mainwindow.o /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so /usr/lib/x86_64-linux-gnu/libGL.so -lpthread 13:00:23: プロセス "/usr/bin/make" は正常に終了しました。 13:01:44: 起動中: "/usr/bin/make" -j1 /usr/lib/qt5/bin/uic ../NewApp/mainwindow.ui -o ui_mainwindow.h g++ -c -pipe -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../NewApp -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o main.o ../NewApp/main.cpp g++ -c -pipe -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../NewApp -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o mainwindow.o ../NewApp/mainwindow.cpp g++ -pipe -g -std=gnu++11 -Wall -W -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp /usr/lib/qt5/bin/moc -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB --include /home/miya/build-NewApp-unknown-Debug/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/miya/NewApp -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../NewApp/mainwindow.h -o moc_mainwindow.cpp g++ -c -pipe -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../NewApp -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o moc_mainwindow.o moc_mainwindow.cpp g++ -o NewApp main.o mainwindow.o moc_mainwindow.o /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so /usr/lib/x86_64-linux-gnu/libGL.so -lpthread 13:01:50: プロセス "/usr/bin/make" は正常に終了しました。
yuki23

2021/11/02 12:49

質問は編集できますので、質問についての追加情報は質問文に記載ください。コメントに書かれても読みにくいです。次からで結構です。
guest

回答1

0

ベストアンサー

g++ をインストールしただけではkits(手動)の設定は変わりません。
kitsのコンパイラーをg++に変えるとどうですか?


コンパイルエラーではないのですね。
検索したところ、Qt Creator の ClangCodeModel というプラグインの不具合のようです。エディタの不具合でビルド結果には影響がないので無視しても構いません。
私の手元で見たところ、Qt の公式サイトからダウンロードできる Qt Creator 5.0.2 では発生しませんでした。
どうしても apt に入っている v4.11 を使いたい場合は、プラグイン一覧から ClangCodeModel を無効にしてください。

投稿2021/10/29 10:30

編集2021/11/02 12:55
yuki23

総合スコア1448

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyazato1970

2021/11/01 08:35

ご回答ありがとうございます。 qt creator のオプションのkitsにて、手動⇒デスクトップ(既定)を選択し、 Compiler: C++ を「Clang(C++,x86 64bit in /usr/bin)」から「GCC(C++,x86 64bit in /usr/bin)」に変更して「OK」ボタンを押下しました。この後、新規プロジェクトを作成した直後に"すべてビルド"を実行してもエラーは解消しませんでした。
yuki23

2021/11/02 12:58

回答追記しました
miyazato1970

2021/11/04 03:01

ご回答の内容を確認いたしました。 現在の環境(apt に入っている v4.11)にてプラグイン一覧から ClangCodeModel を無効にすることによりエディタのエラーは解消しました。どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問