Qt4编译生成VS静态库(静态编译),有三个bat文件 good
开发环境:vs2008+Qt4.8.4源码库
其他环境请自己尝试,原理应该是差不多的
Qt编译生成静态库
1. 本教程只针对在win32平台,使用VS开发工具(例子以VS2008为例)
2. 下载Qt的源代码(针对Qt4,关于Qt5没测试过)
3. 解压Qt源代码到目标目录,如:
4. 打开” mkspecs”目录,找到目标平台的文件夹,如:” win32-msvc2008”;打开” qmake.conf”文件,找到下面语句:
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi –MDd
改为
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi –MTd
5. 在Qt源代码目录下新建三个bat文件,分别为environment.bat、configure.bat、compile.bat,分别功能为:设置环境变量、设置configure参数、开始编译,三个文件内容如下:
environment.bat:
set QTDIR=%CD%
set PATH=%PATH%;%QTDIR%/bin
set QMAKESPEC=win32-msvc2008 // win32-msvc2008根据实际平台进行修改
"D:/Tools/Microsoft Visual Studio 9.0/VC/vcvarsall.bat" x86 //”D:/Tools/Microsoft Visual Studio 9.0/VC/vcvarsall.bat”根据安装的VS版本与路径进行修改
configure.bat
configure -debug-and-release -opensource -static -fast -qt-sql-sqlite -qt-sql-odbc -qt-libpng -qt-libmng -qt-libjpeg -platform win32-msvc2008 // 根据需要自己填写,
可使用configure –h相看相关参数
compile.bat
nmake
nmake confclean // 此句可写可不写
6. 打开VS的命令提示,开始à程序à Microsoft Visual Studio 2008à Visual Studio Toolsà Visual Studio 2008 命令提示
7. 使用”cd”命令去到Qt源代码目录,
8. 依次执行下面命令(编译前可以将源代码下的example文件夹删掉,加快编译速度):
会提示是否接收License,输入”Y”后按回车即可
漫长等待,编译完成后,查看Qt源代码目录下的”lib”目录是否已生成后缀为”lib”的静态库
9. 编译成功后,打开VS添加Qt的静态版本。VS2008-》Qt-》qt optaions-》qt versions-》add,将Qt源代码目录的路径添加进来(如F:\qt-opensource-4.8.4-static,这个路径就是刚刚编译好的静态QT库)
10. 使用VS新建一个Qt工程,然后选择Qt的静态版本,若是DEBUG版本选择项目属性àC/C++à代码生成à运行时库à多线程调试(/MTd);链接器à输入à附加依赖项中加入” ws2_32.lib winmm.lib imm32.lib”这三个库à确定à编译; 若是RELEASE版本选择项目属性àC/C++à代码生成à运行时库à多线程(/MT);链接器à输入à附加依赖项中加入” ws2_32.lib winmm.lib imm32.lib”这三个库à确定à编译;
http://blog.csdn.net/liuguangzhou123/article/details/12710887
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2016-01-13 感觉Release有时比Debug要健壮
2016-01-13 QTexstStream的操作对象是QIODevice(因此QFile,QBuffer,QProcess,QTcpSocket都可以使用),或者QString
2016-01-13 如何去掉IE控件的垂直滚动条(使用QAxWidget加载IE控件)
2016-01-13 由动态库文件dll生成lib库文件(手动生成.def文件,然后使用lib命令编译,非常牛),同理可使用dll生成.a库文件
2016-01-13 OpenBlas编译方法(体验msys下使用MingW)
2016-01-13 编写Qt Designer自定义控件(一)——如何创建并使用Qt自定义控件(一共4篇文章)
2016-01-13 限制QLineEdit的数值输入范围(一共4种限制器:QDoubleValidator, QIntValidator, QRegExpValidator, 和QRegularExpressionValidator)