2017-11-16 11 views
0

私はVSでC++プロジェクトを構築しようとしています。このプロジェクトは、LinuxマシンでNetBeansを使用して開発されましたが、今はWindows上でVisual Studio 2017を使用しています。VSでQtライブラリを使用する

それは、QtのCreatosを使用して開発されていなかったのライブラリのような文章を使って手動で追加されているので:

#include <QtCore> 
#include <QCoreApplication> 
#include <QObject> 
#include <QStringList> 
#include <QMap> 
... 

これは私がこれまでにやったことです:

  • は最後のQtのリリースをダウンロード
  • C:\ Qtのすべてを解凍しました
  • VSプロパティで> VC++ディレクトリ>インクルードディレクトリ - C:\ Qt \ Qt5.9.2 \ 5.9.2 \ msvc2017_64 \ includeとC:\ Qt \ Qt5.9.2を追加しました。 \ 5.9.2 \ msvc2017_64 \ VSのプロパティで
  • > VC++ディレクトリ]> [ライブラリのディレクトリが
  • \ QtCore含める - 私はCを追加しました:\ Qtのを\ Qt5.9.2 \ 5.9.2 \ msvc2017_64 \、しかし

libに私は#include <QtCore>にしようとするVSは何かを期待しているようです: https://imgur.com/a/ruSbi

コンパイルしません。

Severity Code Description Project File Line Suppression State 
Error (active) E0020 identifier "QEvent" is undefined  c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qabstractanimation.h 121 
Error (active) E0020 identifier "QEvent" is undefined c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qabstractstate.h 73 
Error (active) E0020 identifier "QEvent" is undefined c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qabstractstate.h 74 
Error (active) E0020 identifier "QEvent" is undefined c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qabstractstate.h 76 
Error (active) E1455 member function declared with 'override' does not override a base class member  c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qabstracttransition.h 105 
Error (active) E1455 member function declared with 'override' does not override a base class member c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qanimationgroup.h 70 
Error (active) E1455 member function declared with 'override' does not override a base class member c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qcoreapplication.h 190 
Error (active) E0020 identifier "qint8" is undefined c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qdatastream.h 147 
Error (active) E0020 identifier "qint8" is undefined c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qdatastream.h 163 
Error (active) E0260 explicit type is missing ('int' assumed) c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qendian.h 236 
Error (active) E0801 "qint8" is not a class or function template name in the current scope c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qendian.h 236 
Error (active) E0065 expected a ';' c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qendian.h 236 
Error (active) E0020 identifier "qint8" is undefined c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qendian.h 236 
Error (active) E0020 identifier "QEvent" is undefined c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qeventloop.h 79 
Error (active) E1455 member function declared with 'override' does not override a base class member 
...  

だから私は何か不足していると思う。私はVSで新しいので、何か助けていただければ幸いです。

+1

コンパイラのメッセージを表示しない – scopchanov

+1

Qtを手動で解凍する代わりに、オンライン/オフラインのインストーラを使用するだけです。 Qtアドインをビジュアルスタジオに使用する2017 –

+1

@scopchanov yeah申し訳ありませんが、編集されました。 – enekow

答えて

2

QtCoreファイルインクルードディレクトリとの両方でありがとう:

Directory: <Qt_Install_Path>/include/QtCore 
File:  <Qt_Install_Path>/include/QtCore/QtCore 

をまた、あなたはQ_OBJECTマクロを含むすべてのヘッダ上のQt mocを実行する必要があります。 mocは、コンパイルが必要な余分なC++ファイルを生成します。 qmakecmakeなどのツールを使用するとかなり簡単です。 VSの場合、Qt Visual Studio Add-inを使用することはできません。

+0

ありがとう@ベンジャミンはそれでなければなりません。私はQt VS Toolsをインストールしましたが、唯一のオプションは 'Qt Designer'、' Qt Linguist'、 'open Qt prj'です。すでにQtのバージョンをQtオプションに追加しましたが、mocを自動化する方法を理解できません。どうも! – enekow

+0

@enekow VSでQtプロジェクトを作成する場合は、自動的にmocのビルドルールを作成します。 –

+0

@DmitrySazonovですので、VSで新しいQtプロジェクトを開始し、自分のファイルをそこに戻すことができます。助けてくれてありがとう! – enekow

関連する問題