使用云风的pbc库遇到的一些问题

  • Post author:
  • Post category:其他


首先感谢云风的辛苦开发pbc项目,后来在某项目中使用到了该库,期间也遇到了一些问题,特此记录一下</br> 网上有人也写了blog介绍了如何引用该库到cocos2dx的项目中

点此跳转

在使用中我们也参考了该文章的内容。另外我们在使用中也遇到一些另外的小问题

  1. ios平台上的编译问题: </br> 在pbc/binding目录下的pbc-lua.c文件里引用了malloc.h这个头文件,而在ios平台下该头文件在<sys/malloc.h>里,所以这里要改一下 判断一下平台然后引用以下不同的头文件

  2. pbc_env 的单例问题 </br> 看云风的博客上文档的描述,应该是将该库用在服务端开发中,因此在考虑到多线程安全问题,pbc库并没有封装一个统一的pbc_env的单例。而我们因为需要在客户端中使用该库,所以,需要将pbc_env封装为一个静态单例来维护,然后在客户端启动的时候创建,在客户端退出时销毁,这样可以保证lua端和c++端共享一个pbc_env,可以使lua端访问到c++端注册的描述文件

  3. vs环境的编译问题 </br> 在VS环境下编译时,出现了很多编译链接错误,而在pbc库的自己里带的vcproject文件里,看到它把所有的.c文件的编译选项都设置为了’C++’, 所以在项目的win32版本编译时,也需要注意这个问题,而且因为这样的配置,在引用pbc.h头文件时,就不能以extern “C”的方式引用, 因为vs的编译器给C文件和C++文件的符号生成编译前缀的方式是不一样的,否则会产生链接找不到符号的问题

转载于:https://my.oschina.net/pigsoldier/blog/266012