Linux 平台 Cocos2d-Lua-Community LuaGameRunner 工具编译
Cocos2d-x Lua 是一款基于 Cocos2d-x 的 Lua 游戏开发引擎。
自带的安装包并不包含 Linux 平台的 LuaGameRunner,需要自己手动编译。
下面是编译流程:
拉取代码:
git clone https://github.com/u0u0/Cocos2d-Lua-Community.git
进入项目的 runner 源码目录:
cd ./Cocos2d-Lua-Community/tools/runner
编译
mkdir build
cmake ..
cmake --build .
编译过程中会可能会出现:
[100%] Linking CXX executable bin/LuaGameRunner/LuaGameRunner
/bin/ld: 找不到 -lcap: 没有那个文件或目录
/bin/ld: 找不到 -liconv: 没有那个文件或目录
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/LuaGameRunner.dir/build.make:180:bin/LuaGameRunner/LuaGameRunner] 错误 1
make[1]: *** [CMakeFiles/Makefile2:863:CMakeFiles/LuaGameRunner.dir/all] 错误 2
解决方式: 安装对应的依赖。
lcap
的 libcap-dev
# 这个可以安装成功
sudo apt install libcap-dev
liconv
的 libiconv-dev
# 安装不成功
sudo apt install libiconv-dev
需要手动使用源码编译,相关步骤:
类库官网:https://www.gnu.org/software/libiconv/
# 下载源码
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz
# 解压
tar -zxvf libiconv-1.17.tar.gz
# 编译
cd libiconv-1.17
./configure --prefix=/usr/local
make
sudo make install
# 更新数据库
sudo updatedb # 更新文件索引
locate libiconv.so.2
再次进入 runner/build
目录,执行编译:
cmake --build .
编译完成
[100%] Building CXX object CMakeFiles/LuaGameRunner.dir/proj.linux/main.cpp.o
[100%] Linking CXX executable bin/LuaGameRunner/LuaGameRunner
[100%] Built target LuaGameRunner
测试
./bin/LuaGameRunner/LuaGameRunner
# 若报错
./bin/LuaGameRunner/LuaGameRunner: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
# 使用下述方式临时测试
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ./bin/LuaGameRunner/LuaGameRunner
# 若重启电脑后,依然出现此问题,则可以将环境变量添加至配置文件中
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
成功后,会显示: