Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5359|回复: 7
打印 上一主题 下一主题

QT源码下载编译

[复制链接]

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
跳转到指定楼层
楼主
发表于 2016-7-5 09:26:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
回复

使用道具 举报

1272

主题

2067

帖子

7958

积分

认证用户组

Rank: 5Rank: 5

积分
7958
8#
发表于 2017-3-2 23:31:49 | 只看该作者
回复 支持 反对

使用道具 举报

1272

主题

2067

帖子

7958

积分

认证用户组

Rank: 5Rank: 5

积分
7958
7#
发表于 2017-2-28 19:58:21 | 只看该作者
回复 支持 反对

使用道具 举报

1272

主题

2067

帖子

7958

积分

认证用户组

Rank: 5Rank: 5

积分
7958
6#
发表于 2017-2-28 19:55:05 | 只看该作者
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
漫长的两个小时#¥@%!……
大功告成!



回复 支持 反对

使用道具 举报

1272

主题

2067

帖子

7958

积分

认证用户组

Rank: 5Rank: 5

积分
7958
5#
发表于 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-linked
2.使用nmake开始编

3.使用nmake install安装到指定目录。

回复 支持 反对

使用道具 举报

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
地板
 楼主| 发表于 2016-7-6 19:43:57 | 只看该作者
回复 支持 反对

使用道具 举报

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
板凳
 楼主| 发表于 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.安装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

回复 支持 反对

使用道具 举报

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
沙发
 楼主| 发表于 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

    双击从官网下载的安装包进入安装界面

  • 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版本,如图所示






回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-23 08:26 , Processed in 0.068510 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表