0

Qt を Visual Studio 2010 で動作させようとしています。デバッガーで実行できる作業プログラムを作成しました。しかし、Q_OBJECT マクロをクラスに追加しようとすると、リンカー エラーが大量に生成されます。

1>------ Build started: Project: qt_poop, Configuration: Debug Win32 ------
1>Build started 2012/08/05 12:58:56.
1>InitializeBuildStatus:
1>  Creating "Debug\qt_poop.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>ClCompile:
1>  GLViewer.cpp
1>  Window.cpp
1>  main.cpp
1>  Generating Code...
1>Link:
1>  LINK : c:\Users\abral\Documents\Visual Studio 2010\Projects\qt_poop\Win32\Debug\\qt_poop.exe not found or not built by the last incremental link; performing full link
1>GLViewer.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall GLViewer::metaObject(void)const " (?metaObject@GLViewer@@UBEPBUQMetaObject@@XZ)
1>GLViewer.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall GLViewer::qt_metacast(char const *)" (?qt_metacast@GLViewer@@UAEPAXPBD@Z)
1>GLViewer.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall GLViewer::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@GLViewer@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
1>c:\Users\abral\Documents\Visual Studio 2010\Projects\qt_poop\Win32\Debug\\qt_poop.exe : fatal error LNK1120: 3 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:07.50
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

他の人が提起した同様の問題をいくつか見てきましたが、それはコンパイラとモック、および私の初心者の脳がまだ完全に理解できない他の非常に複雑な技術的なものと関係があるようです. また、その多くは、コマンド ラインを使用してコンパイラを構成している人向けのようですが、私は VS を使用しており、そのままにしておきたいと思っています (基本的には、緑色のボタンを押したいだけです)。矢印をクリックして私のプログラムを見てください-それだけです)。ですから...誰かができるだけ簡単な方法で、リンクやコンパイル、またはこれを達成するために必要なことを実行するように Visual Studio を構成する方法を説明してくれたら、私は永遠に感謝します。

4

2 に答える 2

0

これは、VS2010 で Qt をコンパイルするためのリンクです。
http://thomasstockx.blogspot.in/2011/03/qt-472-in-visual-studio-2010.html
彼が言ったすべての手順に従ってください。おそらく、これが問題の解決に役立つ可能性があります。ありがとう、

于 2012-08-05T06:30:25.003 に答える
0

Q_OBJECT をクラスに追加する場合は、必ずqmake!を実行してください。私はCreatorで作業しましたが、Q_OBJECTマクロを使用してQObjectを拡張するクラスを含むコードをコンパイルしようとする前に、そうしなかったときに本当に奇妙なエラーが発生しました。

于 2012-08-05T21:55:11.247 に答える