使用VS编译Qt源码(含编译选项的意义)

转载自[http://blog.csdn.net/u011822862/article/details/52225814]

============以下为原文====================

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();  
}  

编译的为控制台应用程序,如果可以正常执行即为编译成功。

展开阅读全文

没有更多推荐了,返回首页