如何用android ndk编译ocaml

时间:2015-03-05 21:58:02

标签: android android-ndk ocaml cross-compiling

我是ocaml的新手,我正在尝试使用ocaml和android ndk,但我无法弄清楚链接是如何工作的。我已经有了自己的工作,甚至haskell(使用ghc-android)

这是我的c文件,它将调用ocaml代码。现在我只是在运行ndk-build

时尝试编译它

jni.c

#include <jni.h>
#include <caml/callback.h>

JNIEXPORT jint JNICALL JNI_OnLoad( JavaVM *vm, void *pvt ) {
  static char *argv[] = {"hello.so", 0 }, **argv_ = argv;
  caml_startup(&argv);
  return JNI_VERSION_1_2
}

hello.ml     让ocaml_foo = 1.0

let () =
  Callback.register "ocaml_foo" ocaml_foo

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := ocaml
LOCAL_SRC_FILES := ocaml/hello.so

include $(CLEAR_VARS)
LOCAL_MODULE := jni
LOCAL_SRC_FILES := jni.c
LOCAL_SHARED_LIBRARIES := ocaml
LOCAL_EXPORT_C_INCLUDES := /usr/lib/ocaml

include $(BUILD_SHARED_LIBRARY)

错误是

fatal error: caml/callback.h: No such file or directory

我试图按照opam-android的说明操作,但它没有完整的示例。我没有看到如何使用ndk

来构建ocaml共享对象

我是否必须使用ocamlopt的ndk代码编译ocaml代码?如果是这样的话?

0 个答案:

没有答案