第一部分:配置安装环境

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. 主机找不到vmnet1和vmnet8

    今天跑程序时,突然发现虚拟机ping不通主机了,返过来可行,防火墙什么的都设置好了,仍然不行,后来发现,在网络和共享中心已经看不到vmnet1和vmnet8了,更改适配器设置也只有本地连接和宽带连接, ...

  2. 北信源VRVEIS网管软件测试

    650) this.width=650;" border="0" alt="" src="http://img1.51cto.com/att ...

  3. Python程序的混淆和加密

    混淆 为了增加代码阅读的难度, 源代码的混淆非常必要, 一个在线的Python代码混淆网站. 如果你觉得有用, 可以购买离线版本.同时需要注意的是, 这个混淆其实还是被很多人怀疑的, 因为即使混淆了, ...

  4. Django 的 CSRF 保护机制(转)

    add by zhj:假设用户登录了网站A,而在网站B中有一个CSRF攻击标签,点击这个标签就会访问网站A,如果前端数据(包括sessionid)都放在本地存储的话, 当在网站B点击CSRF攻击标签时 ...

  5. <转载>gcc/g++编译

    转载于:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/22/1782678.html 1. gcc/g++在执行编译工作的时候,总共需要4步 ...

  6. PCB板简易流程

    PCB布线规则设置 在进行布线之前一般要进行布线规则的设置,(因为元器件的封装已经画出了元件实际的轮廓大小,所以放置元件封装时,即使两个元件封装挨着也一般不会影响元件的实际安装,不过一般还是稍留一点距 ...

  7. 实时监控mysql数据库变化

    对于二次开发来说,很大一部分就找找文件和找数据库的变化情况 对于数据库变化.还没有发现比较好用的监控数据库变化监控软件. 今天,我就给大家介绍一个如何使用mysql自带的功能监控数据库变化 1.打开数 ...

  8. linux下 ls 排序

    ls -lS                       按大小降序排列 ls -l | sort -n -k5    按大小升序 ls -lrt                       按时间降 ...

  9. easyui中tree型控件不正常显示的处理方法

    我在使用easyui中的tree控件时,出现不正常显示的现象,比如li中不能使用自定义的图标.父级展开或关闭时,其子级仍然显现并出现重叠等.找了很多资料,都没解决这个问题,后来逐个对照官方的源码,才找 ...

  10. [转] [Visual Studio 2012] 找回 建立單元測試 選單

    原文链接:http://www.dotblogs.com.tw/yc421206/archive/2013/03/08/95920.aspx Step1.建立選單 在VS2012選單,Tools→Cu ...