QT5.9.1 + VS2015 静态编译

转自:https://blog.csdn.net/qq_32250025/article/details/77649073

Qt+VS是C++选手做界面的必备利器,但是大多数时候,我们客户的操作环境千差万别,所以领导就要求我们静态编译应用程序。
一:下载资源:
a: 下载QT源码,解压到src文件夹下。


b:下载  Ruby  记得勾选添加环境变量。
c:下载  Python   记得勾选添加环境变量。
d:下载  Perl       记得勾选添加环境变量。
二:安装前的检查工作。
测试
1)运行命令“gcc –v”确保编译器能够正常运行; 
2)运行命令“perl –v”确保perl能够正常运行; 
3)运行命令“Python”确保python能够正常运行,按“Ctrl+Z”结束运行;
4)修改源码 D:\ToolSoftware\Qt\Qt5.9.1\src\qtbase\mkspecs\common\msvc-desktop.conf
QMAKE_CFLAGS_RELEASE    =
QMAKECFLAGSOPTIMIZE−MTQMAKECFLAGSRELEASEWITHDEBUGINFO+=
QMAKECFLAGSOPTIMIZE−MTQMAKECFLAGSRELEASEWITHDEBUGINFO+=
QMAKE_CFLAGS_OPTIMIZE -MT -Zi
QMAKE_CFLAGS_DEBUG      = -Zi -MTd
三:开始编译工作
1:打开命令行,定位到源码目录。cd D:\ToolSoftware\Qt\Qt5.9.1\src

2:输入Configure命令
configure -confirm-license -opensource -platform win32-msvc -debug-and-release -static -static-runtime -force-debug-info -prefix "D:\ToolSoftware\Qt\Qt5.9.1\Qt5.9.1_win32_static" -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -nomake tests -no-compile-examples -nomake examples
3:命令 nmake   (时间>2小时)
4:命令 nmake install
(目录D:\ToolSoftware\Qt\Qt5.9.1\Qt5.9.1_win32_static即为静态编译的Qt库,D:\ToolSoftware\Qt\Qt5.9.1\src目录已被写入很多临时文件,建议编译前备份一份src1,编译后删除src文件夹,把备份的src1修改成src,便于调试源码)
四:配置VS
1:设置环境变量:QTDIR = D:\ToolSoftware\Qt\Qt5.9.1\Qt5.9.1_win32_static
2:修改VS目录的Qt5的默认版本
3:main.cpp 添加
#include <QtPlugin>
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
4:在项目配置属性中:【链接器】->【输入】->【常规】->【附加库目录】中
加入 $(QTDIR)\plugins\platforms
5:
Release:
在项目配置属性中:【C/C++】->【代码生成】->【运行库】->【多线程调试 (/MT)】.
链接库添加:
imm32.lib
winmm.lib
opengl32.lib
ws2_32.lib
glu32.lib
qtpcre2.lib
qwindows.lib
qtharfbuzz.lib
qtlibpng.lib
qtfreetype.lib
Qt5ThemeSupport.lib
Qt5EventDispatcherSupport.lib
Qt5AccessibilitySupport.lib
Qt5FontDatabaseSupport.lib
dwmapi.lib
version.lib
uxtheme.lib
Debug
在项目配置属性中:
【C/C++】->【代码生成】->【运行库】->【多线程调试 (/MDT)】.
链接库添加:
imm32.lib
winmm.lib
opengl32.lib
ws2_32.lib
glu32.lib
qtpcre2d.lib
qwindowsd.lib
qtharfbuzzd.lib
qtlibpngd.lib
qtfreetyped.lib
Qt5ThemeSupportd.lib
Qt5EventDispatcherSupportd.lib
Qt5AccessibilitySupportd.lib
Qt5FontDatabaseSupportd.lib
dwmapi.lib
version.lib
uxtheme.lib
五:切换版本

打开以前的工程,切换版本的时候,记得修改环境变量。如果不生效,可重启计算机
--------------------- 

在链接动态库更方便的做法是:

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


#ifdef QT_NO_DEBUG
#include <QtPlugin>
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "qtpcre2.lib")
#pragma comment(lib, "qwindows.lib")
#pragma comment(lib, "qtharfbuzz.lib")
#pragma comment(lib, "qtlibpng.lib")
#pragma comment(lib, "qtfreetype.lib")
#pragma comment(lib, "Qt5ThemeSupport.lib")
#pragma comment(lib, "Qt5EventDispatcherSupport.lib")
#pragma comment(lib, "Qt5AccessibilitySupport.lib")
#pragma comment(lib, "Qt5FontDatabaseSupport.lib")
#pragma comment(lib, "dwmapi.lib")
#pragma comment(lib, "version.lib")
#pragma comment(lib, "uxtheme.lib")

#else
#include <QtPlugin>
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "qtpcre2d.lib")
#pragma comment(lib, "qwindowsd.lib")
#pragma comment(lib, "qtharfbuzzd.lib")
#pragma comment(lib, "qtlibpngd.lib")
#pragma comment(lib, "qtfreetyped.lib")
#pragma comment(lib, "Qt5ThemeSupportd.lib")
#pragma comment(lib, "Qt5EventDispatcherSupportd.lib")
#pragma comment(lib, "Qt5AccessibilitySupportd.lib")
#pragma comment(lib, "Qt5FontDatabaseSupportd.lib")
#pragma comment(lib, "dwmapi.lib")
#pragma comment(lib, "version.lib")
#pragma comment(lib, "uxtheme.lib")
#endif 


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

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值