QSsh之android版编译

今天看到有人在Qtcn.org给我留言问我QSsh的botan在android和ios 的arm下编译不通过,我就去测试了下,果然是(如果 哪位哥们看到,我道个歉,前天发的,今天才看到)。以前只在win和linux下,果然arm有问题。我就去差了下原因是Botan不同平台,比同cpu 和编译器的配置不同的。

所以我就去看了下QSsh用的botan的用法,他是把botan的配置那么多宏在botan.pri下根据平台和编译器进行很多定义的。仔细看了 看那么多的宏和判断,而且加上我对botan不是十分的熟悉,就不敢妄自更改他的配置。我也就想了个偷懒的方法,去替换掉QSsh用的Botan,直接用 自己官方下载的Botan替换掉QSsh里的Botan。

下面说下我的做法:

1、先去下载Botan库,下载地址:http://botan.randombit.net/download.html 注意,请下载最新稳定版的,1.10.8,开发板的1.11.9我第一步就没通过的。

2、进行botan配置,也就是执行“configure.py”输入参数进行配置,我是选择把所有算法生成统一的botan_all文件的。附上配置参数:

ARM V5的:

./configure.py --gen-amalgamation --cpu=arm/armv5 --os=linux --cc=gcc --with-tr1=none

如果你是win的话,应该是:

python configure.py --gen-amalgamation --cpu=arm/armv5 --os=linux --cc=gcc --with-tr1=none

ARMV7-A的:

./configure.py --gen-amalgamation --cpu=arm/armv7-a --os=linux --cc=gcc --with-tr1=none

Python需要是2.5+,我用的2.7,3.x的我不清楚,您可以试下。

此处参考:http://www.tiwoc.de/blog/2013/03/building-the-botan-library-for-android/

参数的意思我说下,

–gen-amalgamation : 生成聚合的botan_all文件的。

–cpu=arm/armv7-a : CPU的类型,arm/armv7-a 是我们用armv7-a的CPU,如果是X86/Atom或者mips的,你只需要制定其他的类型就行。

–os=linux : 操作系统类型,Android是基于Linux,所以这个是linux

–cc=gcc : 编译器系统,这儿是gcc,

–with-tr1=none :这个参数,好像是必须的,如果没这个参数是会有一个asm里的汇编错误,我那能力更改,就加上了。上面参考里的解释是:当用STLport或者其他替代GNU STL时,这个参数是必须的,我记得Android Ndk的STL是谷歌自己实现的,不是GNU STL。

此时你执行完命令,应该会在Botan的源码目录看到botan_all.h 和botan_all.cpp这两个文件,这两个是我们需要的。

3、配置QSsh源码,替换掉QSsh里的Botan。

1) 禁用QSsh自带的Botan,把src/libs/ssh/ssh.pro里在最后一句话:

include(../3rdparty/botan/botan.pri)

删除或者注释掉(注释是在这句话最前面加上#)。

2) 添加自己的Botan文件,这个可以有很多做法,我是直接加到工程里,编译到QSsh里。我的做法是:

把botan_all.h和botan_cpp复制到/src/libs目录下,然后 在src/libs/ssh/ssh.pro里添加上这两个文件,建议你在Qt-C操作,直接在ssh下右键,添加现有文件。如果是自己改文件,就 SOURCES = 这个参数里加上../botan_all.cpp,HEADERS = 参数里加上../botan_all.h

3) 更改QSsh里引用的头文件,建议直接用QSsh操作。打开工程后,下面高级搜索(Search Results)里,搜索

#include <botan/botan.h>

,选择搜索并替换,全部替换为:

#include "../botan_all.h"

4) 选择你的项目套件为android对应的架构,开始编译吧。

5) 在编译中我遇到了botan错误的,你应该也会遇到,错误的行数在2w多行,错误的那句话是:

return std::make_pair<struct dirent*, std::string>(dir, m_cur_dir.second);

这个是使用make_pair有点问题,把中间的<struct dirent*, std::string>删除即可,注释也行,我的更改是:

std::make_pair/*<struct dirent*, std::string>*/(dir, m_cur_dir.second);

同样,同在这一个函数,还有几个此类的错误,只是不更改也没问题。

这样你编译应该就没问题了、、编译是通过的,只是我没有测试QSsh在android下的使用,如有问题可以在一起探讨。

对,附上我的环境:

、、

希望大家去源地址支持下我、、哈哈、、

http://www.dushibaiyu.com/2014/07/qssh%E4%B9%8Bandroid%E7%89%88%E7%BC%96%E8%AF%91.html

QSsh之android版编译

时间: 2024-07-29 21:54:37

QSsh之android版编译的相关文章

[email&#160;protected]第三章@编译Android版@V1.0.0

 驾驭开源库WebRTC 第三章-编译Android版 作者:adam 鸣谢:老张.aaalaniz 日期:2015-4-6 版本:1.0.0 欢迎转载,有问题反馈Q:2780113541,尽量完善系列教程. depot_tools代理设置参考老张<史上最牛逼的墙内下载webrtc代码说明_20150401> 编译定制参考aaalaniz的脚本: https://github.com/pristineio/webrtc-build-scripts/blob/master/android/b

拥抱Android:编译python搭建移动的无线服务器平台

你想用废旧的Android手机作家庭服务器嘛? 其实并不难.以前,用Android SDK开发一个手机应用,安装下apk就可以host服务了,而现在就直接native化吧. 这篇文章会带你体验编译Python的过程,并用Python搭建可以带着跑的服务器. 首先,我们要开始在Arm的Android平台上编译Python.当然,你需要先准备好一台Linux的机器,然后从Android的官方网站下载并安装好Android NDK(最好SDK也装了). 下载一些必要的代码包: openssl-1.0.

几款Android 反编译 IDE

自从买了Macbook Pro 后,很多操作不太一样,以前windows下的反编译集成环境配起来麻烦就暂且告一段落. 后来过了些日子,装了Parallels Desktop,又拷贝来win8,装了不行,系统的分辨率和retina不搭,实在难用,又下载了个win7 精简版,简直是各种坑啊,乱码,无端停止响应,各种吧.想再装个操作系统,来搞反编译,想到下载又要等好久,于是又放了一段时间. 最近经常弄一些反编译的东西,纯命令行在terminal里输,真蛋疼.还是想弄个批处理的.一键编译,一键生成源码,

Android版xx助手之天天酷跑外挂详细分析

Android版xx助手之天天酷跑外挂详细分析 图/文      莫灰灰 背景 近些年来,移动互联网的大肆崛起,潜移默化中影响着人们的生活和工作习惯.当腾讯的微信平台接入手机游戏之后,移动端的游戏也开始火了起来,这更是改变了人们长久以来的游戏娱乐习惯.茶余饭后,小伙伴们掏出"家伙"打个飞机已是习以为常的事情了.加之移动客户端游戏开发周期短,投入少等特点,很多初创公司也纷纷投入到这个领域中来,并且很多游戏都取得了不错的成绩.就在前不久,全球游戏巨头暴雪的新游戏<炉石传说>也推

开发腾讯移动游戏平台SDK Android版Ane扩展 总结

来源:http://blog.csdn.net/linguifa/article/details/25832011 本文记录了在开发 腾讯移动游戏平台SDK(MSDK) Android版Ane扩展 过程中所遇到的问题和相关解决方案 问题一:编译报错:Unable to resolve target 'android-7': 将低版本的代码导入eclipse时,常遇到这样的问题:Unable to resolve target 'android-XX' 这是原代码中project.properti

ubuntu下android反编译

最近在研究android的逆向工程,看到网上有不少的教程在反编译android源码,但是大多数都是在windows平台下做的.今天,我将简单介绍ubuntu下反编译android源码. 一.工具介绍 1.反编译源码工具: dex2jar:将apk包中的classes.dex文件反编译成jar包. jd-gui:将编译好的jar包用该软件打开直接显示为java源码. 2.打包.签名等工具 apktool:资源文件获取,可以提取出图片文件和布局文件进行使用查看,也就是俗称的解包和打包. sign-m

Android版xx助手之天天酷跑外挂具体分析

Android版xx助手之天天酷跑外挂具体分析 图/文      莫灰灰 背景 近些年来,移动互联网的大肆崛起,潜移默化中影响着人们的生活和工作习惯.当腾讯的微信平台接入手机游戏之后,移动端的游戏也開始火了起来,这更是改变了人们长久以来的游戏娱乐习惯.茶余饭后,小伙伴们掏出"家伙"打个飞机已是习以为常的事情了.加之移动client游戏开发周期短,投入少等特点,非常多初创公司也纷纷投入到这个领域中来,而且非常多游戏都取得了不错的成绩.就在前不久,全球游戏巨头暴雪的新游戏<炉石传说&

WebRTC Android版本编译

本文简单介绍如何在Ubuntu18.04 上,编译WebRTC Android版本. 安装工具 需要用到dept_tools工具来下载webrtc源码. 安装 depot_tools git 命令获取 depot_tools. # git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 配置坏境变量: # echo "export PATH=$PWD/depot_tools:$PATH" &g

影梭Android版使用教程

影梭Android版使用教程 2015年5月13日  admin  影梭使用教程 下载影梭Android版客户端 安卓客户端下载:下载地址 安装并打开影梭 按下图说明设置服务器.远程端口.密码和加密方式,填写完成后,右上角点击开启 服务器购买连接 影梭 影梭安卓教程 影梭教程