홈>
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
관련 자료
- PHP가 C #과 똑같은 입력에 서명하도록하려면 어떻게해야합니까?
- Perl의 경로에서 디렉토리를 두 단계 위로 가져 오려면 어떻게해야합니까?
- c++ - C ++ 20 std lib를 어떻게 구할 수 있습니까?
- 파이썬 스크래피에서 텍스트 만 얻을 수있는 방법
- php - 다음 어레이를 어떻게 구할 수 있습니까?
- Android 스튜디오에서 사용자로부터 데이트를 받으려면 어떻게해야하나요?
- javascript - jquery의 keyup에서 어떻게 val을 얻을 수 있습니까?
- javascript - 시간 속성에서 지금의 시간을 어떻게 얻을 수 있습니까?
- google bigquery - 이 SQL 쿼리에서 어떻게 보완을 얻을 수 있습니까?
- stream - Deno에서 파일 체크섬을 얻으려면 어떻게해야합니까?
- excel - 'AND'및 'OR'을 사용하여 행 수를 어떻게 얻을 수 있습니까?
- haskell - 목록의 모든 2 개 요소를 어떻게 합산 할 수 있습니까?
- azure api management - apim 앱 인사이트에서 백엔드 URL을 가져 오는 방법
- flutter - [Dart]와 같이 목록에 데이터를 동적으로 추가하려면 어떻게해야합니까?
- vue.js - Vue로 어떻게 실시간으로로드 할 수 있습니까?
- postgresql - 테이블의 행 유형을 텍스트로 가져 오는 방법은 무엇입니까?
- tree - 인덱스로 하위 트리를 얻으려면 어떻게합니까?
- swift - 함수 유형은 어떻게 사용합니까?
- python - 두 개의 테이블을 하나로 추가하려면 어떻게해야합니까?
- swift - PublishersCombineLatest를 사용하여 게시자 1 명을 얻는 방법
문제를 알아 냈습니다. "android_main"함수 시작시 "app_dummy ()"함수 호출을 넣지 않았습니다.