第一部分:配置安装环境

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时,有可能会卡在最后一分钟,那么需要重启后断网安装即可。

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

sudo port install python27 py27-yaml py27-cheetah

安装对网络有一定要求,部分地区可能要自备梯子
 
 
下载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

参考文献

https://github.com/funkaster/cxx-generator

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

http://cn.cocos2d-x.org/bbs/forum.php?mod=viewthread&tid=10226&extra=page%3D1

cxx-generator JS绑定工具的更多相关文章

  1. 我用的一些Node.js开发工具、开发包、框架等总结

    开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢. 2.做些小型项目用Sublime Text. 3.Browser ...

  2. Node.js开发工具、开发包、框架等总结

    开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢.2.做些小型项目用Sublime Text.3.Browserif ...

  3. js常用工具类.

    一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...

  4. 2015年最佳的15个 Node.js 开发工具

    Node.js 越来月流行,这个基于 Google V8 引擎建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.在本文中,我们列出了2015年最佳的15个 Node.js 开发工具.这些工具 ...

  5. 推荐近期15个 Node.js 开发工具

    近来Node.js 越来月流行了,这个基于Google V8 引擎建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.在本文中,我们列出了2015年最佳的15个 Node.js 开发工具.这些 ...

  6. atitit js 开发工具 ide的代码结构显示(func list) outline总结

    atitit js 开发工具 ide的代码结构显示(func list) outline总结 eclips环境::4.3.1 #-------需要一个js开发工具,可以显示outline或者代码结构显 ...

  7. 纯JS文本比较工具

    前段时间由于工作需要写了一个纯JS文本比较工具 在这里与大家分享下 算法有待优化,还希望大家多多指教 先上效果图: 奉上源码(把源码保存为html格式的文件就可以直接运行了): <!doctyp ...

  8. cocos2dx手写js绑定C++

    这两天连续查阅了js绑定c++的非常多文章  , 有手动与自己主动两种方式 . 本来想用自己主动绑定的 , 可是NDK一直下载不下来.....就给算了 . 以下总结一下手动绑定的实现过程 : 一共三步 ...

  9. 推荐15个月 Node.js 开发工具

    Node.js 越来月流行.这个基于 Google V8 引擎建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.在本文中.我们列出了2015年最佳的15个 Node.js 开发工具.这些工具 ...

随机推荐

  1. bzoj 3270 博物馆(高斯消元)

    [题意] 两人起始在s,t点,一人pi概率选择留在i点或等概率移动,问两人在每个房间相遇的概率. [思路] 把两个合并为一个状态,(a,b)表示两人所处的状态,设f[i]为两人处于i状态的概率.则有转 ...

  2. LeetCode(7) - Reverse Integer

    题目的要求就是要反转一个Integer,例如输入123,则输出321,这一题比较tricky的地方就是它有可能越界,就是说1234567899,反过来是9987654321是一个越界的Integer, ...

  3. ajax 新闻栏目

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. virtualenv 和 virtualenvwrapper 实践

    virtualenv 首先来聊一下 virtualenv 是个什么鬼. 在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题:亦或者是在开发过程中不想让物理环境里充 ...

  5. T-SQL 变量

    T-SQL变量 变量的种类: 在T-SQL中,变量按生存范围可以分为全局变量(Global Variable)和局部变量(Local Variable) 1.全局变量是由系统定义的,在整个SQL Se ...

  6. 【转】log4j详解及简易搭建

    原文链接:http://www.cnblogs.com/mailingfeng/archive/2011/07/28/2119937.html log4j是一个非常强大的log记录软件. 首先当然是得 ...

  7. Dagger2学习资源

    文章 Jack Wharton关于Dagger的幻灯片 代码 用Dagger2改写Jack Wharton的U+2020 我自己写的,包含了dagger2和单元测试 chiuki写的,包含了dagge ...

  8. Awk中调用shell命令

    Awk中调用shell命令 需求 在awk中,有时候需要调用linux系统中命令,如计算字符串的MD5值,并保存下来. 方法参考 call a shell command from inside aw ...

  9. Speex for Android

    http://blog.csdn.net/chenfeng0104/article/details/7088138在Android开发中,需要录音并发送到对方设备上.这时问题来了,手机常会是GPRS. ...

  10. CCF 201312-1 出现次数最多的数 (水题)

    问题描述 给定n个正整数,找出它们中出现次数最多的数.如果这样的数有多个,请输出其中最小的一个. 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数. 输入的第二行有n ...