C++ Visual Studio 2012中的Qt5.0.1静态链接

C++ Visual Studio 2012中的Qt5.0.1静态链接,c++,qt,visual-studio-2012,static-linking,C++,Qt,Visual Studio 2012,Static Linking,我使用以下配置构建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:

-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();
}

我完全不知道发生了什么事。在VisualStudio2010和Qt4.8中,一切都以这种方式完美工作。我读了一些关于更多外部依赖性的文章,我应该添加这些内容,但我对此不确定。哦,顺便说一句,在QtCreator中,这个静态链接非常有效,但它看不到MySQL插件,这对我来说也是一个谜,我需要它来完成我的原始项目。

我正在使用Visual Studio 2013,但昨天我注意到完全相同的缺失链接

您需要向Ws2_32.lib添加依赖项。

如果您的project compile出现一条神秘的“windows平台插件丢失”消息而崩溃,则需要将其添加到一个cpp中:

Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);
这可能会添加新的依赖项

仅供参考,这些是我用于默认Qt项目的依赖项(有些仅对角度有必要):

  • winmm.lib
  • Ws2_32.lib
  • dxguid.lib
  • d3d9.lib
  • imm32.lib
  • qtmaind.lib
  • qt5corder.lib
  • Qt5Guid.lib
  • Qt5Widgetsd.lib
  • libEGLd.lib
  • 利伯格尔
  • ESv2d.lib
  • 翻译库
  • preford.lib
  • translator_hlsld.lib
  • qwindowsd.lib
  • Qt5PlatformSupportd.lib
  • %(附加依赖项)

您解决过这个问题吗?我遇到了同样的问题。据我记忆所及,我必须用QtCreator构建我的项目。在视觉上,建筑中存在一些冲突,不允许静态构建Qt。
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);