首先感謝雲風的辛苦開發pbc項目,後來在某項目中使用到了該庫,期間也遇到了一些問題,特此記錄一下</br> 網上有人也寫了blog介紹瞭如何引用該庫到cocos2dx的項目中 點此跳轉 在使用中咱們也參考了該文章的內容。另外咱們在使用中也遇到一些另外的小問題ios
ios平臺上的編譯問題: </br> 在pbc/binding目錄下的pbc-lua.c文件裏引用了malloc.h這個頭文件,而在ios平臺下該頭文件在<sys/malloc.h>裏,因此這裏要改一下 判斷一下平臺而後引用如下不一樣的頭文件c++
pbc_env 的單例問題 </br> 看雲風的博客上文檔的描述,應該是將該庫用在服務端開發中,所以在考慮到多線程安全問題,pbc庫並無封裝一個統一的pbc_env的單例。而咱們由於須要在客戶端中使用該庫,因此,須要將pbc_env封裝爲一個靜態單例來維護,而後在客戶端啓動的時候建立,在客戶端退出時銷燬,這樣能夠保證lua端和c++端共享一個pbc_env,可使lua端訪問到c++端註冊的描述文件安全
vs環境的編譯問題 </br> 在VS環境下編譯時,出現了不少編譯連接錯誤,而在pbc庫的本身裏帶的vcproject文件裏,看到它把全部的.c文件的編譯選項都設置爲了'C++', 因此在項目的win32版本編譯時,也須要注意這個問題,並且由於這樣的配置,在引用pbc.h頭文件時,就不能以extern "C"的方式引用, 由於vs的編譯器給C文件和C++文件的符號生成編譯前綴的方式是不同的,不然會產生連接找不到符號的問題多線程