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. 首先简要地解释下这两种函数库的区别,参考 ...
随机推荐
- 【BZOJ 1038】[ZJOI2008]瞭望塔
[题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1038 [题意] [题解] 可以看到所有村子的瞭望塔所在的位置只会是在相邻两个村子所代表 ...
- 利用WPF建立自己的3d gis软件(非axhost方式)(十三)万能的用户层接口,(强大的WPF)
原文:利用WPF建立自己的3d gis软件(非axhost方式)(十三)万能的用户层接口,(强大的WPF) 先下载SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt ...
- Redmine迁移至华为软件开发云-项目管理
一.方案概述 要想将Redmine中某个项目的数据导入到华为软件开发云(以下简称开发云),如果说是按照Redmine中的数据一条一条的在开发云中新建出来,肯定不是一个明智的方案,下面就是给大家介绍一个 ...
- LaTex 加粗(加黑)的方式
1. 基本 LaTeX技巧458:关于LaTeX数学字体加粗 $\mathbf $,会变为粗体,但也导致数学字母斜体形式的丢失: 使用 amsmath package 的 \boldmath 命令: ...
- 利用反汇编手段解析C语言函数
1.问题的提出函数是 C语言中的重要概念.利用好函数能够充分利用系统库的功能写出模块独立.易于维护和修改的程序.函数并不是 C 语言独有的概念,其他语言中的方法.过程等本质上都是函数.可见函数在教学中 ...
- OpenGL(二十一) glPolygonOffset设置深度偏移解决z-fighting闪烁问题
开启深度测试后OpenGL就不会再去绘制模型被遮挡的部分,这样实现的显示画面更为真实,但是由于深度缓冲区精度的限制,对于深度相差非常小的情况(例如在同一平面上进行两次绘制),OpenGL就不能正确判定 ...
- MySQL TIMESTAMP(时间戳)详细解释
当你创建一个表假设表中有类型的字段TIMESTAMP,该字段默认情况下,语句生成: CREATE TABLE `test` ( `id` int(11) DEFAULT NULL, `ctime` t ...
- VS2015静态编译libcurl(C++ curl封装类)
一.最新libcurl静态编译教程(curl-7.51版/curl-7.52版) 1.安装perl,在官网下载,安装好以后,测试perl -v是否成功 2.编译openssl(已编译好的下载地址) p ...
- 整型转字符串(convert int to char)优化实践——一个意外的BUG
convert_int_to_char函数在使用时出现过一个BUG. 当使用值是13200020099时,返回的字符串是"13200020111",结果是错误的. 在gcc编译器里 ...
- COM编程基础(C++)
转自:http://www.yesky.com/20020715/1620482_1.shtml (作为一个初学者,觉得本文挺好,推荐给大家) 这篇文章是给初学者看的,尽量写得比较通俗易懂,并且尽量避 ...