unity mono 库编译笔记
2016-10-12 11:01
549 查看
编译环境 ubuntu 64
1.环境变量,可以不用配置,
external/buildscripts/build_runtime_android.sh中会自动下载对应的版本,最好不要修改,版本库不一致可能导致编译失败
#指定android版本
export ANDROID_PLATFORM=android-9
GCC_PREFIX=arm-linux-androideabi-
#指定gcc版本
GCC_VERSION=4.8
OUTDIR=builds/embedruntimes/android
CWD="$(pwd)"
PREFIX="$CWD/builds/android"
BUILDSCRIPTSDIR=external/buildscripts
#设置sdk版本号
perl ${BUILDSCRIPTSDIR}/PrepareAndroidSDK.pl -ndk=r10e -env=envsetup.sh && source envsetup.sh
编译过程会自动下载一个android库,unity 5.4 的存储路径变掉了和旧版本不一样,可能更有利于后期版本公用吧
KRAIT_PATCH_PATH="${CWD}/../../android_krait_signal_handler/build"
5.4 以前的路径
KRAIT_PATCH_PATH="${CWD}/external/android_krait_signal_handler/build"
2错误:
/usr/bin/env: ‘perl -w’: No such file or directory
make: *** No rule to make target 'clean'. Stop.
android_krait_signal_handler 目录下 build.pl 需要修改#!/usr/bin/env perl -w 为#!/usr/bin/perl -w否则可能会报 perl -w 命令不存在的错误,导致该库编译失败,导致接下来的环境检测通不过
3错误:
make: /home/xxx/android-ndk_auto-r10e/toolchains/arm-linux-androideabi-clang3.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Command not found
make: *** [obj/local/armeabi/objs/krait-signal-handler/krait_signal_handler.o] Error 127
zip warning: name not matched: *.a
adding: build.txt (deflated 2%)
make: *** No rule to make target 'clean'. Stop.
PrepareAndroidSDK::GetAndroidSDK(undef, undef, "r9");
android_krait_signal_handler 库的编译又需要使用android-ndk-r9 编译,如果系统环境变量设置了android-ndk-r10e 的环境变量,可能导致gcc版本不一致,编译失败
4错误:
checking whether the C compiler works... no
configure: error: in `/home/xxx/Desktop/work/5.3/mono':
configure: error: C compiler cannot create executables
See `config.log' for more details
Configure FAILED!
上边几个错误都能导致该错误发生,事实上环境有错误,都会导致改错误,可能是android_krait_signal_handler 编译失败,也可能是依赖库没有安装导致查看config.log可以看到详细错误:
vim ./config.log
oideabi/bin/ld: error: cannot find -lkrait-signal-handler
collect2: error: ld returned 1 exit status
configure:4569: $? = 1
configure:4607: result: no
configure: failed program was:
缺少的库都会在此显示,如果缺少android_krait_signal_handler ,说明该库编译失败,解决2,3错误即可正常编译,如果缺少其他库,自行安装,如:
error while loading shared libraries: libz.so.1: cannot open shared object
缺少libz.so.1库,百度得知需要安装:
其他错误可类似查看config.log 寻找对应解决方案
1.环境变量,可以不用配置,
external/buildscripts/build_runtime_android.sh中会自动下载对应的版本,最好不要修改,版本库不一致可能导致编译失败
#指定android版本
export ANDROID_PLATFORM=android-9
GCC_PREFIX=arm-linux-androideabi-
#指定gcc版本
GCC_VERSION=4.8
OUTDIR=builds/embedruntimes/android
CWD="$(pwd)"
PREFIX="$CWD/builds/android"
BUILDSCRIPTSDIR=external/buildscripts
#设置sdk版本号
perl ${BUILDSCRIPTSDIR}/PrepareAndroidSDK.pl -ndk=r10e -env=envsetup.sh && source envsetup.sh
编译过程会自动下载一个android库,unity 5.4 的存储路径变掉了和旧版本不一样,可能更有利于后期版本公用吧
KRAIT_PATCH_PATH="${CWD}/../../android_krait_signal_handler/build"
5.4 以前的路径
KRAIT_PATCH_PATH="${CWD}/external/android_krait_signal_handler/build"
2错误:
/usr/bin/env: ‘perl -w’: No such file or directory
make: *** No rule to make target 'clean'. Stop.
android_krait_signal_handler 目录下 build.pl 需要修改#!/usr/bin/env perl -w 为#!/usr/bin/perl -w否则可能会报 perl -w 命令不存在的错误,导致该库编译失败,导致接下来的环境检测通不过
3错误:
make: /home/xxx/android-ndk_auto-r10e/toolchains/arm-linux-androideabi-clang3.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Command not found
make: *** [obj/local/armeabi/objs/krait-signal-handler/krait_signal_handler.o] Error 127
zip warning: name not matched: *.a
adding: build.txt (deflated 2%)
make: *** No rule to make target 'clean'. Stop.
PrepareAndroidSDK::GetAndroidSDK(undef, undef, "r9");
android_krait_signal_handler 库的编译又需要使用android-ndk-r9 编译,如果系统环境变量设置了android-ndk-r10e 的环境变量,可能导致gcc版本不一致,编译失败
4错误:
checking whether the C compiler works... no
configure: error: in `/home/xxx/Desktop/work/5.3/mono':
configure: error: C compiler cannot create executables
See `config.log' for more details
Configure FAILED!
上边几个错误都能导致该错误发生,事实上环境有错误,都会导致改错误,可能是android_krait_signal_handler 编译失败,也可能是依赖库没有安装导致查看config.log可以看到详细错误:
vim ./config.log
oideabi/bin/ld: error: cannot find -lkrait-signal-handler
collect2: error: ld returned 1 exit status
configure:4569: $? = 1
configure:4607: result: no
configure: failed program was:
缺少的库都会在此显示,如果缺少android_krait_signal_handler ,说明该库编译失败,解决2,3错误即可正常编译,如果缺少其他库,自行安装,如:
error while loading shared libraries: libz.so.1: cannot open shared object
缺少libz.so.1库,百度得知需要安装:
sudo apt-get install lib32ncurses5 lib32z1
其他错误可类似查看config.log 寻找对应解决方案
相关文章推荐
- unity5.5 mono 编译笔记
- Unity Android编译IL2CPP 对比 Mono
- unity 加密、防止反编译、mono编译
- Unity重新编译mono实现热更新
- Unity 3D Android对dll加密和重编译mono源码进行解密
- unity mono 添加 JNI_OnLoad 编译后 函数无法找到
- 编译unity-mono( 写给超级初学者的朋友)
- ubuntu14_64位 编译 unity-mono
- Unity 3D Android对dll加密和重编译mono源码进行解密
- TUM的mono_dataset_code笔记及编译aruco
- Unity编译Mono
- unity mono 编译
- unity mono 编译(转)
- 编译unity-mono( 写给超级初学者的朋友)
- unity 安卓热更新代码的最新方法: 通过Mono加载新的重新编译的dll
- Windows 下使用 mingw+msys 交叉编译 Android Unity Mono
- Unity在mono下编译失败~
- 编译 Windows 版本的 Unity Mono(2017-03-12 20:59)
- Unity防破解 —— 重新编译mono
- Linux服务器编译安装Mono笔记