Windows下Qt5.9.1源码编译

Windows下Qt5.9.1源码编译

  1. 前期准备:
    a) Qt源码下载: http://download.qt.io/official_releases/qt/
    b) Perl安装,- Perl 5.8 or later: http://www.activestate.com/activeperl/downloads
    c) Python 安装- Python 2.7 or later: https://www.python.org/downloads/
    d) Ruby 安装- Ruby version 1.9.3 or later :http://rubyinstaller.org/
    e) 安装vs2015。qt源码需要编译器MSVC 2012 以上,. 以上- C++ compiler supporting the C++11 standard
    注:需要把安装的工具添加到环境变量中.

  2. 解压源码到<path>,更换源码解压得到的目录名< source_package>,
    可以参考Qt给的官方编译教程,在源码目录下的README 文件中
    <path>:为你的解压目录,我使用的是C盘,C:\
    < source_package>:为你的源码目录,我更换为src。所以我的源码路径为:C:\src

  3. 用管理员方式打开vs2015 x64 本机工具命令提示符。需要编译为32位则打开x86的。

  4. 测试安装的工具是否在环境变量中。
    a) 在命令提示符窗口依次输出:nmake ;Ruby –v ; Perl –v ; python ; 出现如下界面表示添加成功。若没有,那么则是可以手动添加,用SET命令。注意,该命令添加的仅在该窗口有效。

  5. cd 切换到qt源码目录:cd C:\src

  6. 执行configure,配置Makefile 文件。
    a) 执行命令:configure -prefix %CD%\qtbase –opensource -nomake tests -mp ;运行时间大概20min
    b) 如果报如下错误:
    报错提示

    参考该网址解决:https://blog.csdn.net/sean4m/article/details/60143222。如果不能解决,那么重装VS。

  7. 等待执行完configure指令之后,执行nmake。估计需要数小时,参考5h。

  8. nmake 完之后,会在qtbase目录下出现如下几个必要文件夹。
    编译后文件夹

  9. 测试是否能使用。附测试代码:测试工程文件:Test_qt

#include < C:/src/qtbase/include/QtWidgets/QApplication>
#include < C:/src/qtbase/include/QtWidgets/QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel label("开启Qt学习之旅");
    QFont font = label.font();
    font.setPixelSize(48);
    label.setFont(font);
    label.setAlignment(Qt::AlignCenter);
    label.setStyleSheet("background-color: black; color: green;");
    label.setGeometry(200,200,400,300);
    label.show();
    app.exec();
}

注意:先在pro文件加入对应的头文件和库文件路径。

附录

  1. configure 目录是可以有很多选项。如下:
    以下编译选项为常用编译选项,可添加在编译命令中,都是可选:
    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- : 禁用SQL;
    32】-qt-sql- : 根据需求启用SQL插件(默认全部关闭】;
    33】-plugin-sql- :禁用/启用/启用插件 对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 :指定所有库代码路径;
    44】-qtlibinfix :重命名所有.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 、-nomake :选择是否编译某些无关紧要的子模块;
    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的支持。
    67】-release 生成release版本 -debug 生成debug版本 -debug-and-release生成debug和release版本
    68】-force-debug-info 强制生成调试信息 (参数可选】/*** 这个参数是让Qt release版本也生成.pdb文件。这个文件有什么作用呢?它就是我们在release版本下设置了异常捕获信息函数,打印出错堆栈信息所必须的文件。如果程序没用开启异常捕获选项,是不需要开启这个参数的。***/
    69】-opengl dynamic 指定opengl库 (参数可选】 /*** 关于这个参数说明请参考doc.qt.io/qt-5/windows-requirements.html ***/
    70】-platform win32-msvc 目标库运行平台
    71】-skip 跳过该模块
    72】-nomake 不编译该模块
    73】-mp 启动多核编译
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值