scheme-lib 是一个scheme使用的库。目前支持android osx linux windows,其它平台在规划中。
官方主页:http://scheme-lib.evilbinary.org/ QQ群:Lisp兴趣小组239401374
apt-get install freeglut3-dev libgles1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libalut-dev libopenal-dev libffi-dev
make
bin
source env.sh
./scheme --script ../apps/hello.ss
run.bat ../apps/gui-test.ss
运行效果如下:
在手机上输入运行代码可能不方便,所以弄了个配置文件,把需要运行的代码放到配置中会自己加载代码运行。配置文件为config.xml内容如下:
config.xml
(import (test) (gles1) (glut) ) (load "/sdcard/org.evilbinary.chez/lib/apps/draw-point.ss") ;(imgui-test-hello-world)
adb push config.xml /sdcard/org.evilbinary.chez/scm/conf/config.xml
打开scheme app就可以直接运行啦。
scheme-lib/android/src
#include
int add(int a,int b){ return a+b; }
Android.mk内容如下:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) include $(LOCAL_PATH)/../Optimizations.mk LOCAL_MODULE := add LOCAL_SRC_FILES := add.c LOCAL_C_INCLUDES := LOCAL_CFLAGS += -I. -I./c/ LOCAL_CFLAGS += -g -Wall -DANDROID -DINLINES -DGC_MACROS -Wno-unused-parameter -pie -fPIE -fPIC LOCAL_LDLIBS += -ldl -llog -lz include $(BUILD_SHARED_LIBRARY)
执行make android。
make android
将编译后生成的库android/src/libs/libadd.so 同步到/sdcard/org.evilbinary.chez/lib目录下,这样能调用外部库了。
android/src/libs/libadd.so
/sdcard/org.evilbinary.chez/lib
调用外libadd.so库和使用代码如下:
libadd.so
(import (scheme) (utils libutil) )
(load-lib “libadd.so”) (define-c-function int add (int int) ) (display (add 100 1234))