hechengjin 发表于 2016-7-5 09:26:44

QT源码下载编译

本帖最后由 hechengjin 于 2016-7-6 14:20 编辑

http://www.qt.io/download-open-source/#section-2
http://download.qt.io/official_releases/qt/5.7/5.7.0/submodules/


http://wiki.qt.io/Get_The_Source

http://blog.csdn.net/skykingf/article/details/19117493

hechengjin 发表于 2016-7-5 17:09:10

本帖最后由 hechengjin 于 2016-7-5 17:11 编辑

http://jingyan.baidu.com/article/0aa2237554f1db88cc0d6417.html

Qt5.4静态编译方法






静态编译,就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so或.lib)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。这样就可以发布单一文件的EXE程序了。
工具/原料

[*]Qt库
[*]Python
[*]Perl
[*]Ruby


安装Perl

[*]1
双击从官网下载的安装包进入安装界面

http://f.hiphotos.baidu.com/exp/w=500/sign=c9a3f45ad41b0ef46ce8985eedc551a1/78310a55b319ebc4da24caed8426cffc1e171661.jpg
[*]2
安装时注意选择这两项

http://g.hiphotos.baidu.com/exp/w=500/sign=13815b5f08f41bd5da53e8f461db81a0/0b55b319ebc4b7452d360b62c9fc1e178a821527.jpg

END


安装Python

[*]1
双击从官网下载的安装包进入安装界面

http://d.hiphotos.baidu.com/exp/w=500/sign=c967ec7c0ad79123e0e094749d355917/fcfaaf51f3deb48f8fb31daaf61f3a292cf578ef.jpg
[*]2
安装完成后,需要将安装目录添加到系统环境变量Path中

http://f.hiphotos.baidu.com/exp/w=500/sign=c2977198d700baa1ba2c47bb7711b9b1/d833c895d143ad4b8cb9fab484025aafa40f062a.jpg

END


安装Ruby

[*]1
双击从官网下载的安装包进入安装界面

http://a.hiphotos.baidu.com/exp/w=500/sign=7e589291ab6eddc426e7b4fb09dab6a2/eac4b74543a98226bf5097538c82b9014a90eb35.jpg
[*]2
注意选择这一项

http://c.hiphotos.baidu.com/exp/w=500/sign=2c0f8d4c2e381f309e198da999014c67/730e0cf3d7ca7bcbb866785bb8096b63f624a8a1.jpg

END


安装Qt

[*]1
方法一:从官网下载源码zip压缩包直接解压即可
[*]2
方法二:从官网下载对应编译器的安装包进行文件安装
[*]3
安装完成后,需要将安装目录添加到系统环境变量Path中

http://h.hiphotos.baidu.com/exp/w=500/sign=a40475479445d688a302b2a494c37dab/faedab64034f78f090cf26877f310a55b2191cf9.jpg

END


静态编译Qt

[*]1
打开命令行

http://b.hiphotos.baidu.com/exp/w=500/sign=8edc856044a7d933bfa8e4739d4ad194/dbb44aed2e738bd432730d45a78b87d6277ff970.jpg
http://c.hiphotos.baidu.com/exp/w=500/sign=3d2aea1d232dd42a5f0901ab333b5b2f/2fdda3cc7cd98d10ebe9b345273fb80e7bec9081.jpg
[*]2
输入gcc -v命令查看gcc编译器是否正确;配置正确,如下图所示

http://a.hiphotos.baidu.com/exp/w=500/sign=1103c64c68061d957d4637384bf40a5d/bf096b63f6246b60b4310d00edf81a4c510fa283.jpg
[*]3
输入perl -v命令查看Perl解析器是否配置正确,配置正确显示如下图

http://h.hiphotos.baidu.com/exp/w=500/sign=2120bc3edcb44aed594ebee4831c876a/3c6d55fbb2fb4316ca1ac50e26a4462309f7d3b9.jpg
[*]4
输入python命令查看Python是否配置正确,正确显示如下图,按Ctrl+Z回车可以退出Python

http://a.hiphotos.baidu.com/exp/w=500/sign=5b4826eb28dda3cc0be4b82031e83905/5fdf8db1cb134954195d5710504e9258d1094a06.jpg
[*]5
切换到Qt源码目录,假设为D:\Qt
命令为:
D:
cd D:\Qt
上述路径可以根据自己的实际路径进行修改

http://b.hiphotos.baidu.com/exp/w=500/sign=38f6314a7dec54e741ec1a1e89399bfd/d009b3de9c82d158d576e5c5860a19d8bd3e42c9.jpg
[*]6
输入如下命令进行配置
configure.bat -confirm-license -opensource -platform win32-g++ -mp -release -static -prefix "C:\Qt\5.4.0_MinGW_static" -qt-sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit -skip qtwebengine
其中的"C:\Qt\5.4.0_MinGW_static"为生成的静态编译代码库的路径,可以根据自己的需求进行相应更改

http://g.hiphotos.baidu.com/exp/w=500/sign=577e270fd71373f0f53f6f9f940f4b8b/8601a18b87d6277f18128d4c2e381f30e924fc46.jpg
[*]7
配置完成如下图所示

http://e.hiphotos.baidu.com/exp/w=500/sign=ec06d907fdf2b211e42e854efa806511/e61190ef76c6a7ef32251752fbfaaf51f3de6647.jpg
[*]8
输入以下命令进行编译
mingw32-make
过程较长,大约几小时
[*]9
输入以下命令进行安装
mingw32-make install
安装完成如下图所示

http://e.hiphotos.baidu.com/exp/w=500/sign=5db742d1d743ad4ba62e46c0b2035a89/8ad4b31c8701a18b0352ad3b982f07082838fe0d.jpg

END


配置Qt Creator

[*]1
添加上一部编译好的静态Qt版本
Qt Creator -> Tools -> Options -> Build & Run -> Qt Versions,点击Add添加qmake,如图所示

http://f.hiphotos.baidu.com/exp/w=500/sign=6c230357652762d0803ea4bf90ed0849/242dd42a2834349bc6f4d2f1cfea15ce37d3bed0.jpg
http://h.hiphotos.baidu.com/exp/w=500/sign=db95897f5db5c9ea62f303e3e539b622/3801213fb80e7becbbe9bc95292eb9389b506b97.jpg
[*]2
添加完成,点击“Apply”

http://e.hiphotos.baidu.com/exp/w=500/sign=8fb285778144ebf86d71643fe9f8d736/d1a20cf431adcbef92dbc272aaaf2edda2cc9fd3.jpg
[*]3
设置套件
切换到“Kits”选项卡,点击“Add”如图进行配置,完成后点击OK退出设置

http://h.hiphotos.baidu.com/exp/w=500/sign=b55be89df4d3572c66e29cdcba126352/1b4c510fd9f9d72adfd3af69d22a2834349bbb0b.jpg
[*]4
打开C:\Qt\5.4.0_MinGW_static\mkspecs\win32-g++\qmake.conf,找到QMAKE_LFLAGS和QMAKE_LFLAGS_DLL,将后面改成-static,如图所示

http://c.hiphotos.baidu.com/exp/w=500/sign=3c5129887ad98d1076d40c31113eb807/ca1349540923dd5444c2181cd709b3de9c824814.jpg

END


如何使用静态编译库

[*]1
至此Qt5.4.0静态编译配置完成
[*]2
新建工程时选择静态编译的套件,如图所示

http://d.hiphotos.baidu.com/exp/w=500/sign=2df88e4c2e381f309e198da999004c67/730e0cf3d7ca7bcbb9917b5bb8096b63f724a8d8.jpg
[*]3
[*]







对工程进行编译时选择Release版本,如图所示

http://g.hiphotos.baidu.com/exp/w=500/sign=906883b396529822053339c3e7ca7b3b/faf2b2119313b07e1ccbef7c0ad7912397dd8c54.jpg



[*]

hechengjin 发表于 2016-7-6 14:16:10

VS2013编译Qt5.7.0 64位静态库debug-and-release版及结果分享
1. 下载zip源码,我下载的是qt-everywhere-opensource-src-5.7.0.zip这个文件。2.安装python3.解压缩qt-everywhere-opensource-src-5.2.1.zip文件,修改qtbase\mkspecs\win32-msvc2013\qmake.conf文件,将1. QMAKE_CFLAGS_RELEASE    = -O2 -MD2. QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi3. QMAKE_CFLAGS_DEBUG      = -Zi -MDd 改为 1. QMAKE_CFLAGS_RELEASE    = -O2 -MT2. QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi3. QMAKE_CFLAGS_DEBUG      = -Zi -MTd 4.在vs2013开发人员命令提示界面运行configure,我使用的配置参数为:configure -confirm-license -opensource -platform win32-msvc2013 -debug-and-release -static -prefix "C:\Qt\5.7.0-static-vs2013" -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit configure -prefix %CD%\qtbase configure -confirm-license -opensource -platform win32-msvc2013 -debug-and-release -static -prefix "C:\Qt\5.7.0-static-vs2013" configure -confirm-license -opensource -platform win32-msvc2013 -debug-and-release -static -prefix "C:\Qt\5.7.0-static-vs2013" 5.使用nmake开始编译,i3-2100m双核,4G内存的配置下,大约2个多小时就能编译完成。 6.使用nmake install安装到指定目录。 这样在win8.1+vs2013的环境下编译出的Qt5静态库,应该能够直接兼容WinXP。

hechengjin 发表于 2016-7-6 19:43:57

http://blog.csdn.net/tonylk/article/details/3866926

Qter 发表于 2017-2-27 15:04:45

本帖最后由 Qter 于 2017-2-27 15:11 编辑

    -no-openssl ......... Do not compile support for OpenSSL.
+-openssl ............ Enable run-time OpenSSL support.
    -openssl-linked ..... Enabled linked OpenSSL support.

1.在vs2013开发人员命令提示界面运行configure -confirm-license -opensource -platform win32-msvc2013 -debug-and-release -static -prefix "C:\Qt\5.7.0-static-vs2013" -openssl-openssl-linked2.使用nmake开始编
3.使用nmake install安装到指定目录。

Qter 发表于 2017-2-28 19:55:05

error C2027: 使用了未定义类型“QSslError”       

error: ‘QSslSocket’http://www.xuebuyuan.com/2189213.html


重新编译Qt/E的原因

使用按原先:http://hi.baidu.com/dancesimply/blog/item/867c8b09579fe6d862d9861a.html
方法交叉编译的Qt/E,编译支持SSL的demos browser,出现错误:
error: 'QSslSocket' has not been declared
而头文件和相关类以确实在源文件中做了声明。
查找资料后发现,Qt 的 SSL 需要 OpenSSL 库的支持,需要单独编译。

匹配版本及下载地址

Qt/Embedded 4.5.2 及 OpenSSL 0.9.7 版本
编译支持 OpenSSL 版本的 Qt/Embedded 需要独立的 OpenSSL Toolkits 库及头文件支持
我使用的是 Qt/E 4.5.2,首先尝试了 OpenSSL 最新的1.0.0 版本,./configure 可以正常通过,
但编译时提示 ssl 相关文件编译缺少 "STACK" 等的 Declare
于是根据 Qt 文档中所说,支持 "OpenSSL (version 0.9.7 or later)",选择了0.9.7版本,遂成功。

下载地址分别为:
Qt/E 4.5.2:
OpenSSL 0.9.7m:http://www.openssl.org/source/openssl-0.9.7m.tar.gz

交叉编译OpenSSL

下载后解压缩openssl-0.9.7m.tar.gz,进入根目录
打开Makefile,修改62行:CC = cc 为 CC= $YOUR_COMPILER
$YOUR_COMPILER 为你要使用的交叉编译器
make & make install

完事后,根目录下会出现 libssl.a & libcrypto.a 两个需要用的库文件
为便于文档描述,此处设 $OPENSSL_LIB 为当前 openss l根目录,$OPENSSL_INCLUDE 为 $OPENSSL_LIBS/include

配置并编译支持OpenSSL的Qt/E

解压缩下载完的qt-embedded-linux-opensource-src-4.5.2.tar.bz2,进入根目录
执行如下命令输出环境变量:
export OPENSSL_LIBS='-L$OPENSSL_LIB -lssl -lcrypto'
注意,此处 OPENSSL_LIBS 与上节中 $OPENSSL_LIB 的区别

执行配置命令:
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.2-armv5 -release -static -no-fast -no-largefile -qt-sql-sqlite -no-qt3support -nomake examples -nomake demos -qt-zlib -qt-gif -qt-libtiff -qt-libpng
-qt-libmng -qt-libjpeg -no-rpath -silent -optimized-qmake -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16,24,32 -qt-mouse-tslib -no-separate-debug-info -I $TSLIB_INCLUDE -L $TSLIB_LIBS -I $OPENSSL_INCLUDE -L OPENSSL_LIB -opensource
注意,此处需要加入编译好的tslib库及头文件,参见:
http://hi.baidu.com/dancesimply/blog/item/867c8b09579fe6d862d9861a.html

执行编译、安装命令:
make & sudo make install
漫长的两个小时#¥@%!……
大功告成!



Qter 发表于 2017-2-28 19:58:21

http://doc.qt.io/qt-5/opensslsupport.html

Qter 发表于 2017-3-2 23:31:49

http://blog.csdn.net/wsj18808050/article/details/54730686
http://blog.csdn.net/wsj18808050/article/details/50909381
页: [1]
查看完整版本: QT源码下载编译