1. 程式人生 > >第三方擴充套件的新增和編譯

第三方擴充套件的新增和編譯

說明:

  1. 新增第三方擴充套件,就是在xLua原有的c原始碼庫中新增新的靜態庫供lua環境使用,所以,請確保你已有Unity和xLua基礎。
  2. 在xLua的官方文件上有rapidjson的新增流程,這裡只是把個人在編譯時碰到的問題進行總結。
  3. 實際流程按官方文件來基本沒有問題,但是流程中可能碰到各種小警告和報錯,遇到問題可以嘗試修改相關檔案,但是如果失敗建議刪除所有的檔案後重頭開始。

Win

所需工具:

  1. Windows作業系統。(本人Win7)
  2. C和C++的編譯器。(如果是Unity自動安裝的VS,那麼有可能只有C#,需要自行新增)
  3. cmake。(本人3.7.2)
  4. 第三方擴充套件的原始碼(本人只加了官方教程中的rapidjson)。
  5. 一定的英文基礎,一定的耐心。可能需要一定的批處理基礎。

具體流程:

  1. 閱讀官方文件
  2. 安裝CMake。
    此處注意,cmake安裝完畢後即便是環境變數正常,也可能出現bat檔案執行時無cmake命令的情況,重啟可解決,如果不想重啟或重啟無效,請手動開啟cmd視窗cd至bat檔案目錄執行檔案。
  3. 修改CMakeLists.txt檔案(本人不會,照著例子做)
  4. 修改bat檔案(64位為例:右鍵make_win64_lua53.bat編輯)
  5. 新增庫原始碼檔案。
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版本描述。

常見錯誤

  1. ‘cmake’is not recognized…:cmake安裝成功了嗎?環境變數有嗎?重啟電腦了嗎?cmd下手動輸入cmake -h有提示嗎?
  2. 提示沒有C/C++編譯器(關鍵字:Compiler):VS版本配置對了嗎,編譯器裡確定安裝了C/C++的編譯器嗎?
  3. 該改的都改了,怎麼還報同樣的錯誤:cmake執行會有Cache,出錯後刪除之前生成的東西!
  4. 其他問題,沒碰到過。

Linux(Android)

如果你在Win下使用Unity,並且需要打包到安卓,請提前新增並確保該平臺擴充套件無異常。(我在Win+Unity下已經萬事俱備,但是等到打包需要的時候卡在了Android的擴充套件上。。。)

所需工具:

  1. Linux作業系統。(本人Win7下Ubuntu虛擬機器,Cygwin不行!同理Git命令執行sh檔案也不行!!
  2. Android NDK(嘗試r13不行,可能姿勢不對,建議和作者一樣使用r10e
  3. cmake。(本人3.7.2)
  4. 第三方擴充套件的原始碼(本人只加了官方教程中的rapidjson)。
  5. 一定的英文基礎,一定的耐心。可能需要一定的Shell基礎和linux作業系統的基本知識。

具體流程:

  1. 閱讀官方文件
  2. 安裝cmake。
  3. 修改CMakeLists.txt檔案(本人不會,照著例子做)
  4. 修改sh檔案
  5. 新增原始碼檔案

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