Discuz! Board

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

QT源码下载编译

[复制链接]

1228

主题

1997

帖子

7582

积分

认证用户组

Rank: 5Rank: 5

积分
7582
楼主
发表于 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安装到指定目录。

回复 支持 反对

使用道具 举报

1228

主题

1997

帖子

7582

积分

认证用户组

Rank: 5Rank: 5

积分
7582
沙发
发表于 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
漫长的两个小时#¥@%!……
大功告成!



回复 支持 反对

使用道具 举报

1228

主题

1997

帖子

7582

积分

认证用户组

Rank: 5Rank: 5

积分
7582
板凳
发表于 2017-2-28 19:58:21 | 显示全部楼层
回复 支持 反对

使用道具 举报

1228

主题

1997

帖子

7582

积分

认证用户组

Rank: 5Rank: 5

积分
7582
地板
发表于 2017-3-2 23:31:49 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 15:32 , Processed in 0.056650 second(s), 17 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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