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
Qt4编译生成VS静态库(静态编译),有三个bat文件 good的更多相关文章
- Android导入第三方静态库.a编译成动态库.so
http://ikinglai.blog.51cto.com/6220785/1324985 在Android开发的时候,经常会使用到用c或c++编写的第三方的静态库.如果有源码的话,可以直接跟你自己 ...
- Python语言、编译解释、动态库静态库、编译过程、头文件
学习Python这门语言首先要了解 什么是编译与解释,什么是连接,什么是动态库与静态库, 什么是编译: 编译就是先把高级语言设计的程序翻译成二进制的机器语言,然后CPU直接执行机器码就可以了.一把翻译 ...
- 目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”)。静态库是一个或者多个obj文件的打包
前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”) ...
- 使用ar命令删除iOS静态库重复编译的.o文件
关于 xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误 看这里 http://www.cnblogs.com/cocoajin/p/3917709.ht ...
- iOS导入c++语言的静态库之后编译不过,先要检查是否导入了libstdc++
iOS项目中引入c++库,编译链接时报如下错: "std::string::_Rep::_M_destroy(std::allocator<char> const&)&q ...
- iOS - .a静态库的打包(包括打包的文件中用到了一些别人的三方库和分类的处理)
一.概念篇 什么是库? 库是程序代码的集合,是共享程序代码的一种方式 根据源代码的公开情况,库可以分为2种类型 开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetworking ...
- 使用rust调用c++静态库并编译nodejs包
在项目上经常要用到身份证阅读器.护照阅读仪.指纹仪等各种品牌硬件,假如每套系统的都做集成开发那代码的维护成本将变得很高,为此采用rust来调用厂家提供的sdk c++开发包并封装成nodejs包,用f ...
- C/C++ 跨平台交叉编译、静态库/动态库编译、MinGW、Cygwin、CodeBlocks使用原理及链接参数选项
目录 . 引言 . 交叉编译 . Cygwin简介 . 静态库编译及使用 . 动态库编译及使用 . MinGW简介 . CodeBlocks简介 0. 引言 UNIX是一个注册商标,是要满足一大堆条件 ...
- linux上静态库和动态库的编译和使用(附外部符号错误浅谈)
主要参考博客gcc创建和使用静态库和动态库 对于熟悉windows的同学,linux上的静态库.a相当于win的.lib,动态库.so相当于win的.dll. 首先简要地解释下这两种函数库的区别,参考 ...
随机推荐
- jdk 8 lambda表达式以及Predicate接口
了解lambda之前先了解下什么是函数式接口,函数式接口即接口里必须有一个抽象方法(抽象的方法只能有一个,可以有其他的用default修饰的方法) jdk8里新增了一个@FunctionalInter ...
- linux下jar包的生存与开机自动启动
前言 作为一名Android开发,有的时候也是要做做其他工作的,前段时间写了一个很简单的java消息转发程序,因为和三方厂商合作,对方只提供了java的sdk,然而我们这边都是清一色的C#后台开发人员 ...
- Java背景
Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级编程语言 2009年Oracle甲骨文公司收购Sun公司
- python去噪算法
<programming computer vision with python >中denoise 算法有误,从网上好了可用的代码贴上,以便以后使用. 书中错误的代码: def deno ...
- [Scikit-Learn] - 数据预处理 - 归一化/标准化/正则化
reference: http://www.cnblogs.com/chaosimple/p/4153167.html 一.标准化(Z-Score),或者去除均值和方差缩放 公式为:(X-mean)/ ...
- IE8支持function.bind()方法
这个 bind 方法仅仅有在 ie10 版本号的浏览器才得到原生支持,低于该版本号的浏览器下运行时会得到一个 undefined 的错误提示.于是仅仅好再次上网 google 解决方式,功夫不负有心人 ...
- win10家庭版连接不上远程桌面
解决方案来自于:https://blog.csdn.net/weixin_39129504/article/details/80303615 这个解决方案的关键: done!不知是否侵权 如有侵权 ...
- Openstack+Kubernetes+Docker微服务
Openstack+Kubernetes+Docker微服务 渐入佳境,我们开始比较具体的工作,由于Docker是一个基础组件,所以本文的主题是Docker和Registry2. 底层系统基于Cent ...
- WPF党旗和国徽!
原文:WPF党旗和国徽! 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yangyisen0713/article/details/18087007 ...
- eXtremeDB -- the shared memory 80error
The customers got the shared memory 80error on AIX environment; utility truss is used to track the d ...