# 1 linux、mac下安装
# 安装编译
- linux下安装
apt-get install freeglut3-dev libgles1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libalut-dev libopenal-dev libffi-dev uuid-dev
依赖库。 - mac安装xcode command line tool。
- 执行
make
命令就可以编译,对应平台的文件在bin
目录下。 - 进入
bin
目录,执行source env.sh
,然后运行./scheme --script ../apps/hello.ss
就可以运行例子。
# 2 windows
- 下载scheme-lib-2.0-win32.zip (opens new window),解压后进入bin,打开cmd运行
run.bat ../apps/gui-test.ss
就可以运行例子了(这个压缩包里的版本非常旧了建议加社区群下载新的版本,详见文档 2.2 的下载方式) - 编译可以参考2.2章节window下编译安装
# 3 android
# app安装运行
- 先安装scheme-release-1.6.apk (opens new window)。
- 点击下载官方packages下载、点击官方apps下载。
- 打开apps 找一个cals.ss打开,然后点击运行,就可以了。
# 手机调试
- 将手机连接电脑,开启adb调试模式(需要安装adb命令,不会用goolge)。进入
cd scheme-lib/android/src/packages
,在shell下执行python sync.py
命令,这样每次修改后,会自动同步packages下的代码到手机/sdcard/org.evilbinary.chez/lib
目录下面,这样方便运行了。 - 在run界面里面输入测试代码。比如:
(import (test) (gles1) (glut) )
(load "/sdcard/org.evilbinary.chez/lib/apps/hello.ss")
# 测试配置
在手机上输入运行代码可能不方便,所以弄了个配置文件,把需要运行的代码放到配置中会自己加载代码运行。配置文件为
config.xml
内容如下:<?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <string name="debugCode">(import (test) (gles1) (glut) ) (load "/sdcard/org.evilbinary.chez/lib/apps/draw-point.ss") ;(imgui-test-hello-world) </string> </map>
adb push config.xml /sdcard/org.evilbinary.chez/conf/config.xml
打开scheme app就可以直接运行啦。
# 4 高级篇
# android使用外部库
手工添加Android.mk和源码文件到
scheme-lib/android/src
下命名为libhadd的文件夹。 add.c 内容如下:#include <stdio.h> #include <stdarg.h> 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
。将编译后生成的库
android/src/libs/libadd.so
同步到/sdcard/org.evilbinary.chez/lib
目录下,这样能调用外部库了。调用外
libadd.so
库和使用代码如下:(import (scheme) (utils libutil) ) (load-lib "libadd.so") (define-c-function int add (int int) ) (display (add 100 1234))