2017-10-23 14 views
0

Android 용 OpenSSH 7.6p1을 크로스 컴파일하려고합니다. getrrsetbyname.c에서 실패합니다. 시스템 resolv.h에 정의 된 적어도 맥 OS에 아마도 리눅스에있는Android 용 OpenSSH를 교차 컴파일하는 것은 getrrsetbyname.c에서 실패합니다.

(cd openbsd-compat && /Applications/Xcode.app/Contents/Developer/usr/bin/make) 
/Users/johannes/src/android_ssh/android_ndk_arm_api21/bin/clang -I/Users/johannes/src/android_ssh/prefix/include -pipe -Qunused-arguments -Wunknown-warning-option -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -fno-builtin-memset -fstack-protector-strong -I. -I.. -I. -I./.. -I~/src/android_ssh/prefix/include/openssl -DHAVE_CONFIG_H -c getrrsetbyname.c 
getrrsetbyname.c:219:12: error: incomplete definition of type 'struct state' 
     if ((_resp->options & RES_INIT) == 0 && res_init() == -1) { 
      ~~~~~^ 
getrrsetbyname.c:71:8: note: forward declaration of 'struct state' 
struct __res_state _res; 
    ^
../config.h:1785:21: note: expanded from macro '__res_state' 
#define __res_state state 
        ^
getrrsetbyname.c:219:24: error: use of undeclared identifier 'RES_INIT' 
     if ((_resp->options & RES_INIT) == 0 && res_init() == -1) { 
          ^
getrrsetbyname.c:71:20: error: tentative definition has type 'struct state' that is never completed 
struct __res_state _res; 
       ^
getrrsetbyname.c:71:8: note: forward declaration of 'struct state' 
struct __res_state _res; 
    ^
../config.h:1785:21: note: expanded from macro '__res_state' 
#define __res_state state 
        ^
3 errors generated. 
make[1]: *** [getrrsetbyname.o] Error 1 
make: *** [openbsd-compat/libopenbsd-compat.a] Error 2 

그래서 그것은 상수 (RES_INIT를) 실종 및 구조체 (struct __res_state) : 여기에 해당 파일의 그 소리 출력입니다 . 그러나, 안드로이드 NDK의 resolv.h는 그것들을 정의하지 않습니다.

뭔가 누락되었거나 getrssetbyname.c은 현재 Android NDK와 호환되지 않습니다.

답변

0

Android 용 OpenSSH를 크로스 컴파일하는 데 관심이있는 분은 Termux 프로젝트를 살펴 보시고 특히 termux-packages을 참조하시기 바랍니다.