QSsh의android 버전 컴파일

3393 단어 QSsh
오늘 누군가가 Qtcn에 있는 것을 보았다.org가 나에게 QSsh의 botan이android와 ios의arm에서 컴파일되지 않았는지 물어보자 나는 테스트를 해 보았는데 과연 (어떤 형들이 보면 내가 사과하고 그저께 보냈는데 오늘에야 보았다).이전에는 win과 linux에서만 그랬는데, 역시arm에 문제가 있었다.나는 Botan의 다른 플랫폼이 cpu와 컴파일러의 설정보다 다르기 때문에 차이가 났다.
그래서 QSsh에 사용되는 botan의 사용법을 살펴보았는데 그는 botan의 설정을 그렇게 많은 宏을 botan에 배치했다.pri에서 플랫폼과 컴파일러에 따라 많은 정의를 내렸습니다.그렇게 많은 웅장함과 판단을 자세히 보았고 게다가 나는 botan에 대해 그리 익숙하지 않아서 감히 그의 설정을 함부로 바꾸지 못했다.나도 게으름 피우는 방법을 생각해서 QSh용 Botan을 교체하고, 직접 자신이 공식적으로 다운로드한 Botan으로 QSh의 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

파이톤은 2.5+가 필요합니다. 저는 2.7,3을 사용합니다.x는 잘 모르겠습니다. 한번 해 보십시오.
참조:http://www.tiwoc.de/blog/2013/03/building-the-botan-library-for-android/
매개 변수의 뜻은 제가 말씀드리지만,
-gen-amalgamation: 집합을 생성하는 botanall 파일의
- cpu=arm/armv7-a: CPU의 유형,arm/armv7-a는 우리가armv7-a의 CPU를 사용합니다. X86/Atom 또는mips의 경우 다른 유형을 정하면 됩니다.
-os=linux: 운영체제 유형, 안드로이드는 Linux 기반이기 때문에 이것은 linux입니다.
-cc=gcc: 컴파일러 시스템, 여기는 gcc,
-with-tr1=none: 이 매개 변수는 꼭 필요한 것 같습니다. 이 매개 변수가 없으면 asm의 어셈블리 오류가 발생할 수 있습니다. 제 능력이 바뀌면 추가됩니다.위에서 참고한 설명은 STLport이나 다른 GNU STL을 대체할 때 이 매개 변수는 필수적이다. 안드로이드 Ndk의 STL은 구글이 스스로 실현한 것이지 GNU STL이 아니라는 것을 기억한다.
이 때 명령을 실행하면 보탄의 원본 디렉터리에서botan 을 볼 수 있습니다all.h와 botanall.cpp 이 두 파일, 이 두 파일은 우리가 필요로 하는 것이다.
3. QSsh 원본을 설정하고 QSsh에 있는 Botan을 교체합니다.
1) QSh 자체 Botan을 비활성화하고 src/libs/ssh.프로에서 마지막 한마디:
include(../3rdparty/botan/botan.pri)

삭제하거나 주석을 삭제합니다. (주석은 이 말의 맨 앞에 #을 붙이는 것입니다.)
2) Botan 파일을 추가하면 여러 가지 방법이 있습니다. 저는 프로젝트에 직접 추가하고 QSsh에 컴파일합니다.내 접근 방식:
botanall.h와 botancpp를/src/libs 디렉터리에 복사한 다음 src/libs/ssh.pro에 이 두 파일을 추가합니다.Qt-C에서 직접 ssh에서 오른쪽 단추를 눌러서 기존 파일을 추가하는 것을 권장합니다.직접 파일을 변경하는 경우 SOURCES = 이 매개변수에./botan_all.cpp, HEADERS = 매개변수에./botan_all.h
3) QSh에서 참조하는 헤더 파일을 변경하고 직접 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);

이거는 메이크를 사용해서...pair에 문제가 있습니다. 중간에 있는 을 삭제하면 됩니다. 주석도 괜찮습니다. 제 변경 사항은 다음과 같습니다.
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

좋은 웹페이지 즐겨찾기