firemail
标题: QT源码下载编译 [打印本页]
作者: hechengjin 时间: 2016-7-5 09:26
标题: 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
本帖最后由 hechengjin 于 2016-7-5 17:11 编辑
http://jingyan.baidu.com/article/0aa2237554f1db88cc0d6417.html
Qt5.4静态编译方法
静态编译,就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so或.lib)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。这样就可以发布单一文件的EXE程序了。
工具/原料
安装Perl
1
双击从官网下载的安装包进入安装界面
2
安装时注意选择这两项
END
安装Python
1
双击从官网下载的安装包进入安装界面
2
安装完成后,需要将安装目录添加到系统环境变量Path中
END
安装Ruby
1
双击从官网下载的安装包进入安装界面
2
注意选择这一项
END
安装Qt
1
方法一:从官网下载源码zip压缩包直接解压即可2
方法二:从官网下载对应编译器的安装包进行文件安装3
安装完成后,需要将安装目录添加到系统环境变量Path中
END
静态编译Qt
1
打开命令行
2
输入gcc -v命令查看gcc编译器是否正确;配置正确,如下图所示
3
输入perl -v命令查看Perl解析器是否配置正确,配置正确显示如下图
4
输入python命令查看Python是否配置正确,正确显示如下图,按Ctrl+Z回车可以退出Python
5
切换到Qt源码目录,假设为D:\Qt
命令为:
D:
cd D:\Qt
上述路径可以根据自己的实际路径进行修改
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"为生成的静态编译代码库的路径,可以根据自己的需求进行相应更改
7
配置完成如下图所示
8
输入以下命令进行编译
mingw32-make
过程较长,大约几小时9
输入以下命令进行安装
mingw32-make install
安装完成如下图所示
END
配置Qt Creator
1
添加上一部编译好的静态Qt版本
Qt Creator -> Tools -> Options -> Build & Run -> Qt Versions,点击Add添加qmake,如图所示
2
添加完成,点击“Apply”
3
设置套件
切换到“Kits”选项卡,点击“Add”如图进行配置,完成后点击OK退出设置
4
打开C:\Qt\5.4.0_MinGW_static\mkspecs\win32-g++\qmake.conf,找到QMAKE_LFLAGS和QMAKE_LFLAGS_DLL,将后面改成-static,如图所示
END
如何使用静态编译库
1
至此Qt5.4.0静态编译配置完成2
新建工程时选择静态编译的套件,如图所示
3
对工程进行编译时选择Release版本,如图所示
作者: hechengjin 时间: 2016-7-6 14:16
VS2013编译Qt5.7.0 64位静态库debug-and-release版及结果分享
1. 下载zip源码,我下载的是qt-everywhere-opensource-src-5.7.0.zip这个文件。
2.安装python
3.解压缩qt-everywhere-opensource-src-5.2.1.zip文件,修改
qtbase\mkspecs\win32-msvc2013\qmake.conf文件,将
1. QMAKE_CFLAGS_RELEASE = -O2 -MD
2. QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
3. QMAKE_CFLAGS_DEBUG = -Zi -MDd
改为
1. QMAKE_CFLAGS_RELEASE = -O2 -MT
2. QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
3. 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
http://blog.csdn.net/tonylk/article/details/3866926
作者: Qter 时间: 2017-2-27 15:04
本帖最后由 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-linked
2.使用nmake开始编
3.使用nmake install安装到指定目录。
作者: Qter 时间: 2017-2-28 19:55
error C2027: 使用了未定义类型“QSslError”
error: ‘QSslSocket’ http://www.xuebuyuan.com/2189213.html
重新编译Qt/E的原因
使用按原先:http://hi.baidu.com/dancesimply/ ... 9fe6d862d9861a.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/ ... 9fe6d862d9861a.html
执行编译、安装命令:
make & sudo make install
漫长的两个小时#¥@%!……
大功告成!
作者: Qter 时间: 2017-2-28 19:58
http://doc.qt.io/qt-5/opensslsupport.html
作者: Qter 时间: 2017-3-2 23:31
http://blog.csdn.net/wsj18808050/article/details/54730686
http://blog.csdn.net/wsj18808050/article/details/50909381
欢迎光临 firemail (http://firemail.wang:8088/) |
Powered by Discuz! X3 |