2

次の構成で Qt をビルドします。

-platform win32-msvc2012 -no-icu -no-angle -opengl desktop -static -qt-sql-mysql -qt-plugins-mysql -nomake demos -nomake examples

そしてすべてがうまくいきました。ところで。また、win32-msvc2012 mkspecs /MD の qmake.conf を静的リンク用に /MT に変更しました (いくつかの指示に従って)。今、静的リンクを使用して、Visual Studio 2012 で最も単純なアプリケーションを構築しようとしています。だから私は簡単なプロジェクト(Qt Visual Add-inからのこの基本的なもの)を作成します:

#include "test.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[])
{
 QApplication a(argc, argv);
 test w;
 w.show();
 return a.exec();
}

(テストは単なるプレーンウィンドウです)そして、Visual Studio 2010で行っていたので覚えている2つのことを設定します:1)プロジェクトプロパティ-> C / C ++->コード生成->ランタイムライブラリ私はMTに設定2)プロジェクトプロパティ-> 一般 -> MFC の使用 i が静的ライブラリで MFC を使用するように設定されている

もちろん、Qt プロジェクト設定で、Qt の静的バージョンを設定しました。この構成では、非常に多くのエラーが発生します – http://pastebin.com/6ve3pFUh [pastebin.com] すべてのライブラリ (すべてだと思います) は、Qt アドイン (qtmain.lib Qt5Core.lib Qt5Gui.lib) によって追加されました。 Qt5Widgets.lib)。MFC の使用を標準の Windows ライブラリを使用する既定値に設定すると、次のようになります。

1>     Creating library D:\Visual Studio 11\Projects\test\Win32\Release\test.lib and object D:\Visual Studio 11\Projects\test\Win32\Release\test.exp
1>Qt5Core.lib(qeventdispatcher_win.obj) : error LNK2019: unresolved external symbol _WSAAsyncSelect@16 referenced in function "private: void __thiscall QEventDispatcherWin32::createInternalHwnd(void)" (?createInternalHwnd@QEventDispatcherWin32@@AAEXXZ)
1>D:\Visual Studio 11\Projects\test\Win32\Release\\test.exe : fatal error LNK1120: 1 unresolved externals

何が起こっているのか全くわかりません。Visual Studio 2010 と Qt 4.8 では、すべてこの方法で問題なく動作します。追加する必要がある外部依存関係について何かを読みましたが、それについてはわかりません。ところで、QtCreator ではこの静的リンクはうまく機能しますが、MySQL プラグインが表示されません。これは私にとって謎であり、元のプロジェクトに必要です。

4

1 に答える 1

1

私は Visual Studio 2013 を使用していますが、昨日まったく同じミッシング リンクがあることに気付きました。

Ws2_32.lib に依存関係を追加する必要があります。

プロジェクトをコンパイルしても、不可解な「windows platform plugin missing」メッセージでクラッシュする場合は、これを 1 つの cpp に追加する必要があります。

Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);

これにより、新しい依存関係が追加される可能性があります。

参考までに、これらはデフォルトの Qt プロジェクトに使用する依存関係です (一部は ANGLE でのみ必要です)。

  • winmm.lib
  • Ws2_32.lib
  • dxguid.lib
  • d3d9.lib
  • imm32.lib
  • qtmaind.lib
  • Qt5Cored.lib
  • Qt5Guid.lib
  • Qt5Widgetsd.lib
  • libEGLd.lib
  • libGL
  • ESv2d.lib
  • translator_commond.lib
  • preprocessord.lib
  • translator_hlsld.lib
  • qwindowsd.lib
  • Qt5PlatformSupportd.lib
  • %(追加の依存関係)
于 2014-03-14T08:16:00.940 に答える