jsb 自动绑定

来源:互联网 发布:卖家加入农村淘宝好吗 编辑:程序博客网 时间:2024/06/05 18:17

第一部分:配置安装环境

cxx-generator是由Zynga工程师贡献的C++代码绑定到js工具。用于将cocos2d-x 的c++代码,生成相应的js绑定代码(由c++写成),然后将这些函数注册到spidermonkey的解释器中。通过将js代码映射成c++代码,就可以使用相应的js接口了。

所需要的环境

mac os x系统 

  • python2.7
  • py-yaml
  • cheetah (for target language templates)
  • libclang, from clang 3.1

 

前三个可以通过macports自动安装

macports下载地址

http://www.macports.org/install.php

注意选择适合你的系统版本,另外该页也注明了安装中常见的系统问题,一共四条。

在安装macports时,有可能会卡在最后一分钟,那么需要重启后断网安装即可。

 

在终端上运行此命令,安装前三个软件

vim .profile

PATH=$PATH:/opt/local/bin:/opt/local/sbin

退出

/opt/local/bin:/opt/local/sbin

sudo port install python27 py27-yaml py27-cheetah

安装对网络有一定要求,部分地区可能要自备梯子

 

输入: $ sudo port -v selfupdate (强烈推荐第一次运行的时候使用-v参数,显示详细的更新过程) 

下载clang

 

http://llvm.org/releases/3.1/clang+llvm-3.1-x86_64-apple-darwin11.tar.gz

 

 

下载NDK

绑定例子中,用到了部分c++标准库接口,所以需要提供相应代码实现,工具中,采用ndk实现。不太明白为什么没有直接用xcode中的标准库。

 

http://dl.google.com/android/ndk/android-ndk-r8d-darwin-x86.tar.bz2

 

第二步,生成绑定代码

 

复制 userconf.ini.sample 和 user.cfg.sample 并去掉sample后缀

 

添加自己的路径,我的是多系统所以路径有点特别

 

//user.cfg

PYTHON_BIN=/opt/local/bin/python2.7

 

//userconf.ini 

[DEFAULT]

androidndkdir=/Volumes/data/Mac_OS_X/android-ndk-r8b

clangllvmdir=/Volumes/data/Mac_OS_X/clang+llvm-3.1-x86_64-apple-darwin11

cxxgeneratordir=/Volumes/data/Workspace/cocos2d-2.1beta3-x-2.1.0/tools/cxx-generator

 

 

最后,由终端运行

sudo ./test.sh

 

生成simple_test_bindings文件夹,下面就是绑定好的c++代码了。

 

 

第三步,集成测试

 

懒省事直接拿TestJavaScript例子开刀,倒入两个文件夹simple_test和simple_test_bindings

 

在AppDelegate.cpp中,倒入头文件

#include "autogentestbindings.hpp"

并注册

sc->addRegisterCallback(register_all_autogentestbindings);

 

在tests-boot-jsb.js中,添加测试代码

var myClass=new ts.SimpleNativeClass();

var myStr=myClass.returnsACString();

cc.log(myStr);

控制台输出

 

this is a c-string

0 0
原创粉丝点击