开发环境: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

Qt4编译生成VS静态库(静态编译),有三个bat文件 good的更多相关文章

  1. Android导入第三方静态库.a编译成动态库.so

    http://ikinglai.blog.51cto.com/6220785/1324985 在Android开发的时候,经常会使用到用c或c++编写的第三方的静态库.如果有源码的话,可以直接跟你自己 ...

  2. Python语言、编译解释、动态库静态库、编译过程、头文件

    学习Python这门语言首先要了解 什么是编译与解释,什么是连接,什么是动态库与静态库, 什么是编译: 编译就是先把高级语言设计的程序翻译成二进制的机器语言,然后CPU直接执行机器码就可以了.一把翻译 ...

  3. 目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”)。静态库是一个或者多个obj文件的打包

    前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”) ...

  4. 使用ar命令删除iOS静态库重复编译的.o文件

    关于 xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误 看这里 http://www.cnblogs.com/cocoajin/p/3917709.ht ...

  5. iOS导入c++语言的静态库之后编译不过,先要检查是否导入了libstdc++

    iOS项目中引入c++库,编译链接时报如下错: "std::string::_Rep::_M_destroy(std::allocator<char> const&)&q ...

  6. iOS - .a静态库的打包(包括打包的文件中用到了一些别人的三方库和分类的处理)

    一.概念篇 什么是库? 库是程序代码的集合,是共享程序代码的一种方式 根据源代码的公开情况,库可以分为2种类型 开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetworking ...

  7. 使用rust调用c++静态库并编译nodejs包

    在项目上经常要用到身份证阅读器.护照阅读仪.指纹仪等各种品牌硬件,假如每套系统的都做集成开发那代码的维护成本将变得很高,为此采用rust来调用厂家提供的sdk c++开发包并封装成nodejs包,用f ...

  8. C/C++ 跨平台交叉编译、静态库/动态库编译、MinGW、Cygwin、CodeBlocks使用原理及链接参数选项

    目录 . 引言 . 交叉编译 . Cygwin简介 . 静态库编译及使用 . 动态库编译及使用 . MinGW简介 . CodeBlocks简介 0. 引言 UNIX是一个注册商标,是要满足一大堆条件 ...

  9. linux上静态库和动态库的编译和使用(附外部符号错误浅谈)

    主要参考博客gcc创建和使用静态库和动态库 对于熟悉windows的同学,linux上的静态库.a相当于win的.lib,动态库.so相当于win的.dll. 首先简要地解释下这两种函数库的区别,参考 ...

随机推荐

  1. sqoop 1.4.7 安装配置/连接测试

    环境: hadoop2.7.7 mysql 8 zk 3.4.10 hive 3 1.上传并解压tar包后进入conf目录 拷贝sqoop-env-template.sh并重命名为sqoop-env. ...

  2. 手机预览微信小程序

    1. 获取微信小程序的 AppID 登录 https://mp.weixin.qq.com ,就可以在网站的“设置”-“开发者设置”中,查看到微信小程序的 AppID 了,注意不可直接使用服务号或订阅 ...

  3. 【20.00%】【codeforces 44G】Shooting Gallery

    time limit per test5 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  4. 【25.47%】【codeforces 733D】Kostya the Sculptor

    time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  5. 在Windows中安装MinGW-w64(有图,一步一步)

    在Windows中安装MinGW-w64 发表回复 如需配合Sublime Text 3编译C程序, 请参考本站文章: 使用Sublime Text 3与MinGW-w64编译C语言程序 MinGW, ...

  6. idea 搭建 SpringBoot 集成 mybatis

    编译器:IDEA2018.2.3 环境:win10,jdk1.8,maven3.4 数据库:mysql 5.7 备注:截图较大,如果看不清,可以在图片上右键=>在新标签页中打开   查看高清大图 ...

  7. 一:redis 的string类型 - 相关操作

    *redisclient使用: =============一类:string的方法================ 介绍:string是redis的最简单类型,一个key相应一个value,strin ...

  8. Alien Widgets加速了绘制、减少了闪烁。但通过设置,还可以使用Native Widget

    QWidget::createWindowContainer和QWindow::setParentNative Widgets vs Alien Widgets http://doc.qt.io/qt ...

  9. Store-exclusive instruction conflict resolution

    A data processing system includes a plurality of transaction masters (4, 6, 8, 10) each with an asso ...

  10. 【原】对MYSQL下视图的一些总结

    注:本文使用mysql5.5版本为例.   做过数据库开发的同学,对视图(VIEW)应该不会陌生.   我接触视图最多的应用场景有两个: 1)出于权限问题,为了限制访问者看到过多的表字段(或内容),就 ...