第三方擴充套件的新增和編譯
說明:
- 新增第三方擴充套件,就是在xLua原有的c原始碼庫中新增新的靜態庫供lua環境使用,所以,請確保你已有Unity和xLua基礎。
- 在xLua的官方文件上有rapidjson的新增流程,這裡只是把個人在編譯時碰到的問題進行總結。
- 實際流程按官方文件來基本沒有問題,但是流程中可能碰到各種小警告和報錯,遇到問題可以嘗試修改相關檔案,但是如果失敗建議刪除所有的檔案後重頭開始。
Win
所需工具:
- Windows作業系統。(本人Win7)
- C和C++的編譯器。(如果是Unity自動安裝的VS,那麼有可能只有C#,需要自行新增)
- cmake。(本人3.7.2)
- 第三方擴充套件的原始碼(本人只加了官方教程中的rapidjson)。
- 一定的英文基礎,一定的耐心。可能需要一定的批處理基礎。
具體流程:
- 閱讀官方文件
- 安裝CMake。
此處注意,cmake安裝完畢後即便是環境變數正常,也可能出現bat檔案執行時無cmake命令的情況,重啟可解決,如果不想重啟或重啟無效,請手動開啟cmd視窗cd至bat檔案目錄執行檔案。 - 修改CMakeLists.txt檔案(本人不會,照著例子做)
- 修改bat檔案(64位為例:右鍵make_win64_lua53.bat編輯)
- 新增庫原始碼檔案。
mkdir build64 & pushd build64
cmake -G "Visual Studio 14 2015 Win64" ..
popd
cmake --build build64 --config Release
md plugin_lua53\Plugins \x86_64
copy /Y build64\Release\xlua.dll plugin_lua53\Plugins\x86_64\xlua.dll
pause
第二行Visual Studio 14 2015 Win64
為你的C/C++編譯環境,配置出錯會有提示。出錯後按照提示改成你自己的VS版本描述。
常見錯誤
- ‘cmake’is not recognized…:cmake安裝成功了嗎?環境變數有嗎?重啟電腦了嗎?cmd下手動輸入
cmake -h
有提示嗎? - 提示沒有C/C++編譯器(關鍵字:Compiler):VS版本配置對了嗎,編譯器裡確定安裝了C/C++的編譯器嗎?
- 該改的都改了,怎麼還報同樣的錯誤:cmake執行會有Cache,出錯後刪除之前生成的東西!
- 其他問題,沒碰到過。
Linux(Android)
如果你在Win下使用Unity,並且需要打包到安卓,請提前新增並確保該平臺擴充套件無異常。(我在Win+Unity下已經萬事俱備,但是等到打包需要的時候卡在了Android的擴充套件上。。。)
所需工具:
- Linux作業系統。(本人Win7下Ubuntu虛擬機器,Cygwin不行!同理Git命令執行sh檔案也不行!!)
- Android NDK(嘗試r13不行,可能姿勢不對,建議和作者一樣使用r10e)
- cmake。(本人3.7.2)
- 第三方擴充套件的原始碼(本人只加了官方教程中的rapidjson)。
- 一定的英文基礎,一定的耐心。可能需要一定的Shell基礎和linux作業系統的基本知識。
具體流程:
- 閱讀官方文件
- 安裝cmake。
- 修改CMakeLists.txt檔案(本人不會,照著例子做)
- 修改sh檔案
- 新增原始碼檔案
sh檔案只知道兩個引數:
export ANDROID_NDK=/home/ezhex1991/Downloads/android-ndk-r10e
配置Android NDK的路徑,根據自己情況改,路徑最好不要有空格。
-DANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-clang3.6
配置toolchain,我也不知道是幹啥的,但是必須保證你的ndk/toolchains/
目錄下有同名目錄,如果和xLua作者一樣用r10e的NDK,那麼不用修改,因為Android的庫有v7a和x86兩個版本,所以要改就得改兩處。個人使用r13失敗,所以強烈建議用r10e。
常見錯誤
本來之前花了很久沒有編譯成功,後來重新下載後只改了一下NDK目錄就OK了,所以關鍵還是linux的使用上出了問題結果把引數改亂了,所以:
1. 如果你之前沒有linux系統的基礎,請先嚐試使用linux。
2. 和win下一樣,cmake命令需要環境變數,需要使用linux命令列terminal新增,具體方法請自行百(gu)度(ge)。
3. linux和Win的文字編碼可能會有區別(換行符),會造成sh檔案無法執行,網上的解決辦法亂七八糟根本起不到作用!最簡單的方式就是在linux下全選複製貼上。
4. NDK路徑如果始終配置不對,請直接在NDK目錄下執行terminal,按照顯示的目錄配置。
5. 用r10e,用r10e,用r10e。
6. 失敗了請重頭再來!從頭再來!從頭再來!
IOS/OSX
我沒用過。。。xLua群號:612705778