4 つの Qt 5.1.0 パッケージをダウンロードしました。
Windows 32 ビット用 Qt 5.1.0 (MinGW 4.8、OpenGL、666 MB)
Windows 32 ビット用 Qt 5.1.0 (VS 2010、505 MB)
Windows 64 ビット用 Qt 5.1.0 (VS 2012、525 MB)
Windows 64 ビット用 Qt 5.1.0 (VS 2012、OpenGL、522 MB)
これら 4 つのパッケージをすべてインストールした後、 Qt 5.1.0 for Windows 32 ビット (VS 2010、505 MB)を使用して、非常に単純な QT プロジェクトを作成しました。
このプロジェクトは、UI フォームを備えた Qt GUI アプリケーションです。単語を入力せずに、Qt Creator のテンプレートに従うだけで作成しました。その後、このプロジェクトをビルドして実行しましたが、すべて問題ありません。
次に、新しい C++ クラスをプロジェクトに追加しました。追加された C++ クラスの基本クラスは QWidget です。今回は、.cpp ファイルと .h ファイルに何も入力しませんでした。したがって、追加されたクラスのみが Qt Creator によって作成されました。その後、このプロジェクトを再度ビルドして実行しましたが、すべて問題ありません。
今、私は自分のコードを追加し始めました。mainwindow.h に次の 1 行を追加しました。
#include "myclass.h"
次に、mainwindow.cpp に次の行を追加しました。
pMyClass = new CMyClass(this);
その後、このプロジェクトを再度ビルドしましたが、今度は 2 つのエラーが発生しました。
error LNK2001: unresolved external symbol public: __thiscall CMyClass::CMyClass(class QWidget *)" (??0CMyClass@@QAE@PAVQWidget@@@Z)
error LNK1120: 1 unresolved externals
別の 3 つの Qt バージョンを使用して、同じプロジェクトをビルドしました。
Windows 32 ビット用 Qt 5.1.0 (MinGW 4.8、OpenGL、666 MB)
Windows 64 ビット用 Qt 5.1.0 (VS 2012、525 MB)
Windows 64 ビット用 Qt 5.1.0 (VS 2012、OpenGL、522 MB)
ビルドと実行はすべて成功しました。全て大丈夫。
私のプロジェクトは、を使用して正常にビルドおよび実行できるためです
Windows 32 ビット用 Qt 5.1.0 (MinGW 4.8、OpenGL、666 MB)
Windows 64 ビット用 Qt 5.1.0 (VS 2012、525 MB)
Windows 64 ビット用 Qt 5.1.0 (VS 2012、OpenGL、522 MB)
私のプロジェクトには何も問題はないと確信しています。
Windows 32 ビット (VS 2010、505 MB) で Qt 5.1.0 を使用すると、エラーが発生します。
結果に戸惑いました。ビルド ディレクトリを確認したところ、VS 2010 が mycalss.cpp をコンパイルしていないことがわかりました。他の 3 つのビルド ディレクトリにはすべて、myclass の .obj ファイルまたは .o ファイルがあります。そのため、リンク時にエラーが発生しました。
私のシステムは Windows7 64bit Ultimate です。この問題を解決する方法を知っている人はいますか?