>

JHC는 휴대용으로 C 코드를 생성 한 다음 컴파일러 백엔드를 호출하여 실행 파일을 만드는 Haskell 컴파일러입니다.

JHC의 런타임 시스템 용 헤더 파일과 라이브러리를 덤프해야하므로, 안드로이드 ndk가이를 사용하여 생성 된 C 코드를 컴파일 할 수 있습니다.

또는 안드로이드 API를 JHC에 연결하는 방법을 알아 내야합니다.

기본적으로 어떻게 JHC를 안드로이드 ndk 백엔드에 꽂을 수 있습니까?

편집 : JHC가 사용할 수있는 ndk의 빌드 도구 중 하나 인 "build/tools/make-standalone-toolchain.sh"를 사용하여 독립형 컴파일러를 만들었습니다. 이제 JHC가 프로그램을 공유 객체 라이브러리로 컴파일하는 방법과 JHC가 "기본"기능을 요구하지 않도록하는 방법을 알아 내야합니다.

Edit2 : 다음 targets.ini 및 컴파일 스크립트가 있습니다. 이상하게 공유 라이브러리를로드하지 못했습니다.

[android]
cc=arm-linux-androideabi-gcc
cflags+= -shared -fPIC -rdynamic -Wno-all
gc=static
executable_extension=.so
merge=mle32

그리고

#!/bin/sh
jhc --cross -mandroid \
 --main=Main.android_main \
 hs/Main.hs -o libs/armeabi/libnative-activity &&   
ant debug &&
ant debug install

  • 답변 # 1

    문제를 알아 냈습니다. "android_main"함수 시작시 "app_dummy ()"함수 호출을 넣지 않았습니다.

관련 자료

  • 이전 python : Pandas 데이터 프레임을 사용할 때 존재하지 않는 경우 어떻게 열을 추가합니까?
  • 다음 android - 변수를 사용하는 드로어 블 리소스