使用VS编译Qt源码(含编译选项的意义)
2016-12-29 20:41
162 查看
转载自[]http://blog.csdn.net/u011822862/article/details/52225814]
============以下为原文====================
Qt常用的编译方式有两种,一种是使用mingw编译器,另外一种是使用vs编译器进行编译,本文主要介绍使用vs编译器进行编译。
pro文件:
main.cpp文件
编译的为控制台应用程序,如果可以正常执行即为编译成功。
============以下为原文====================
Qt常用的编译方式有两种,一种是使用mingw编译器,另外一种是使用vs编译器进行编译,本文主要介绍使用vs编译器进行编译。
1、编译选项
以下编译选项为常用编译选项,可添加在编译命令中,都是可选: 1)-prefix <dir> :指定安装目录默认在; 2)-hostprefix [dir] :指定可扩展的工具库安装路径,默认当前目录; 3) -prefix-install :指定QT的本地安装; 4)-bindir <dir> :指定可执行文件路径 <dir>(默认 PREFIX/bin下); 5)-libdir <dir> : 指定库文件路径 <dir>(默认 PREFIX/lib); 6)-docdir <dir> : 指定文档路径 <dir>(默认 PREFIX/doc); 7)-headerdir <dir> : 指定头文件路径 <dir>(默认 PREFIX/include); 8)-plugindir <dir> : 指定插件路径 <dir> (默认 PREFIX/plugins); 9)-datadir <dir> : 指定QT要使用到的一些数据文件所在路径 <dir> (默认 PREFIX); 10)-translationdir <dir> :指定QT程序的翻译文件路径 <dir>(默认 PREFIX/translations); 11)-sysconfdir <dir> :指定QT的设置文件路径 <dir>(默认 PREFIX/etc/settings); 12)-examplesdir <dir> : 指定实例文件, <dir>(默认 PREFIX/examples) 13)-demosdir <dir> : 指定demos的安装路径 <dir> (默认 PREFIX/demos); 14)-buildkey <key> : 通过指定的key生成QT库和插件; 15)-release :此选项在编译过程QT会对程序进行优化,在发布软件的时候应该用此选项,是默认选项; 16)-debug :加上此选项编译程序QT不会做出优化,往往在开发过程使用此选项; 17)-debug-and-release : 编译两个版本; 18)-developer-build : 编译Qt的开发商和连接选项(包括自动测试出口的Qt); 19)-opensource :以开源版本发布程序; 20)-commercial :以商业版本发布程序; 21)-shared : 创建和使用共享Qt库; 22)-static : 创建和使用静态的Qt库; 23)-no-fast : 使用通常的Makefile来编译,是默认选项; 24)-fast : 快速编译,除了封装必要的库,部分步骤省略或者用快速的方法处理; 25)-no-largefile : 禁用大文件支持; 26)-largefile :支持访问大于4GB的文件; 27)-no-exceptions : 禁用编译器本身对异常的处理; 28)-exceptions : 启用编译器本身对异常的处理; 29)-no-accessibility 、-accessibility :禁用/启用无障碍支持; 30)-no-stl、-stl :禁用/启用STL支持; 31)-no-sql-<driver> : 禁用SQL; 32)-qt-sql-<driver> : 根据需求启用SQL插件(默认全部关闭); 33)-plugin-sql-<driver> :禁用/启用/启用插件 对SQL的支持; 34)-system-sqlite : 启用支持sqlite也可用-qt-sqlite; 35)-no-qt3support 、-qt3support :禁用/启用qt3支持模块; 36)-no-xmlpatterns 、-xmlpatterns : 禁用/启用xmlpatterns模块; 37)-no-phonon 、-phonon : 禁用/启用Phonon模块(可以理解为声音控制模块); 38)-no-phonon-backend、-phonon-backend:禁用/启用phonon-backend模块; 39)-no-svg、-svg : 禁用/启用svg模块; 40)-no-webkit、-webkit : 禁用/启用webkit模块(访问网络模块); 41)-no-scripttools 、-scripttools : 禁用/启用scripttools模块; 42)-platform target : x86平台指定模块 (qws/Linux-x86-g++); 43)-qtnamespace <name> :指定所有库代码路径; 44)-qtlibinfix <infix> :重命名所有.so库文件到指定路径; 45)-qt-zlib :zlib依赖包; 46)-no-gif 、-qt-gif :gif图片支持包; 47)-no-libtiff 、-qt-libtiff :tiff支持插件; 48)-no-libpng 、-qt-libpng :png图片支持插件; 49)-no-libmng 、-qt-libmng : mng支持插件; 50)-no-libjpeg 、-qt-libjpeg :jpeg图片支持插件; 51)-no-openssl、-openssl :openssl支持插件; 52)-make <part>、-nomake <part> :选择是否编译某些无关紧要的子模块; 53)-continue :忽略错误的编译; 54)-verbose, -v :显示每个步骤的详细信息; 55)-silent :安静的编译省略信息回显; 56)-no-optimized-qmake、-optimized-qmake :禁用/开启qmake的优化作用; 57) -no-nis 、-nis :禁用/开启NIS的支持; 58)-no-cups 、-cups :禁用/开启对CUPS的支持; 59)-no-iconv 、-iconv :禁用/开启对iconv的支持; 60)-no-pch 、-pch :禁用/开启是否使用预处理器头文件; 61)-no-dbus、-dbus :禁用/开启对QTdbus模块的编译; 62)-reduce-relocations :减少因为链接优化而导致的而外的库文件重置 63)-no-separate-debug-info :不将调试信息放在一个文件内; 64)-separate-debug-info : 将调试信息放在一个文件内; 65)-no-opengl 、-opengl :禁用/开启对opengl的支持; 66)-no-glib 、-glib : 禁用/启用对glib的支持。
2、编译步骤
1)从 http://download.qt.io/official_releases/qt/ 下 载QT源代码, 进行解压,注意解压路径不要含有空格或中文,我把它解压到了D:\Qt5.1src里,准备把编译好的放在D:\Qt5.1里; 2)打开VS编译控制台,进入解压的地方,比如我的: cd D:\Qt5.1src; 3)键入命令configure -prefix D:\Qt5.1 -debug-and-release -static -opensource -no-qt3support -no-dbus -no-phonon -no-webkit -qt-gif -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg; 注:编译选项参照上面。 4)configure可能要花几分钟时间,成功后再输入nmake开始编译,编译会花去大概1小时左右; 5)输入nmake install,进行编译安装。
3、简单测试
利用pro文件进行项目组织,链接相应文件和Qt的库,手动编写项目源码,使用QMAKE命令转成vs的解决方案,进行测试,简单代码如下:pro文件:
QT += core QT -= gui TARGET = Test CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp
main.cpp文件
#include <QCoreApplication> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); return a.exec(); }
编译的为控制台应用程序,如果可以正常执行即为编译成功。
相关文章推荐
- QT5.7静态编译(使用VS2013与VS2015编译,XP可用,有详细configure脚本。VS下Qt插件的配置。编译选项加上-mp可以开启多线程编译,编译速度提高2倍以上)
- Windows下使用VS2013编译Qt5.6源码
- 使用VS开发Qt项目时编译速度慢的问题解决
- 如何使用VS2015编译运行DX11版本龙书配套源码
- 【PE】VS编译选项MD,MDd,MT,MTd的使用和区别
- 为什么要使用CMake+VS编译OpenCV的源码
- win10 使用cmake编译opencv源码生成VS工程(二)
- QGIS(2.18.15 源码)+Qt(5/5.9.3)+VS2015(X64)编译
- VS2015 Qt5.9环境下QtFtp静态库编译及使用
- Windows平台使用VS2013编译VLC源码
- qt-5.6.0 移植之qt源码编译-configure选项
- VS2015,qt 5.7.1,编译使用QString的toWCharArray时出现无法解析的toWCharArray(unsigned char*)的问题,无法正确识别WChar_t类型
- 使用mingw 与 vs 编译64位的QT 库
- Windows平台使用VS2013编译VLC源码
- Windows平台使用VS2013编译VLC源码
- qt-5.6.0 移植之qt源码编译----configure选项分析
- 为什么要使用CMake+VS编译OpenCV的源码
- 使用qmake编译QT工程,手写源码
- qt5 有中文使用vs编译时失败,以及中文显示乱码
- Qt使用VS编译时“转到COFF期间失败”解决方法