คุณอาจพบบางสิ่งที่คุณมีความสุขในตอนนี้ แต่ฉันได้รวบรวมไบนารีของความพร้อมเพรียงที่ทำงานบน Android - เป็นไปได้โดยใช้คำแนะนำแบบโบกมือที่คุณกำลังพูดถึง - ฉันใช้พวกเขาเพื่อคอมไพล์แหล่งลินุกซ์ภายใน Ubuntu 12.10 การใช้ android NDK และการเปลี่ยนแปลงรหัสบางอย่างตอนนี้ทำงานอยู่ ทำตามคำแนะนำที่https://sites.google.com/site/keigoattic/ocaml-on-androidจากนั้นคุณจะต้องทำบางสิ่ง มีไฟล์ชื่อ pty.c ในแหล่งพร้อมเพรียง - ค้นหาส่วนต่อไปนี้:
// openpty
#if defined(__linux)
#include <pty.h>
/*#define HAS_OPENPTY 1*/
#endif
และแสดงความคิดเห็นdefine HAS_OPENPTY 1
ตามที่แสดง คุณต้องเปิด ubase / util.ml และแก้ไข:
let homeDir () =
System.fspathFromString "/Your path here"
แสดงความคิดเห็นจากที่นี่:
(if (osType = `Unix) || isCygwin then
safeGetenv "HOME"
else if osType = `Win32 then
(*We don't want the behavior of Unison to depends on whether it is run
from a Cygwin shell (where HOME is set) or in any other way (where
HOME is usually not set)
try System.getenv "HOME" (* Windows 9x with Cygwin HOME set *)
with Not_found ->
*)
try System.getenv "USERPROFILE" (* Windows NT/2K standard *)
with Not_found ->
try System.getenv "UNISON" (* Use UNISON dir if it is set *)
with Not_found ->
"c:/" (* Default *)
else
assert false (* osType can't be anything else *))
... ไปที่นี่!
จากนั้นคุณจะต้องแก้ไข Makefile.Ocaml
CWD=$(shell pwd)
EXEC_EXT=
WINOBJS=
SYSTEM=generic
# openpty is in the libutil library
ifneq ($(OSARCH),solaris)
ifneq ($(OSARCH),osx)
# CLIBS+=-cclib -lutil
endif
endif
buildexecutable::
@echo Building for Unix
endif
endif
และคอมเม้นท์# CLIBS+=-cclib -lutil
ตามที่แสดง
และเท่าที่ฉันจำได้ว่ามันใช้ได้ทั้งหมด ขั้นตอนอื่นที่คอมไพล์ครั้งเดียวคือการเมานต์พาร์ติชันระบบ Android ของคุณเป็นแบบเขียนได้และคัดลอกพร้อมเพรียงไปยังโฟลเดอร์ / system ซึ่งส่วนที่เหลือทั้งหมดของคำสั่งเชลล์คือ
หวังว่าจะเป็นประโยชน์กับใครบางคน ... ฉันนอนไม่หลับเพราะรวบรวมมัน