Tencent / xLua

xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc.
Other
9.39k stars 2.46k forks source link

Linux平台下执行make_android_luaJIT_arm64.sh 无报错 无法使用Luajit指令 #715

Closed zhangchu1994 closed 4 years ago

zhangchu1994 commented 4 years ago

执行make_android_luaJIT_arm64.sh脚本后 控制台无报错 能在xLua-master/build/plugin_luajit/Plugins/Android/libs下生成3个平台的.So文件 也能生成xLua-master/build/luajit-2.1.0b3/src下的luajit文件 文件类型为可执行文件 (application/x-executable) 但对这个文件执行命令 报错 root@ian-virtual-machine:/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src# ./luajit -v -bash: ./luajit: 无法执行二进制文件: 可执行文件格式错误

环境: Linux Ubuntu 18.04 LTS NDK:android-ndk-r15c-linux-x86_64 GCC版本:root@ian-virtual-machine:/home/ian/Ian/xLua-master/build# gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)

控制台Log `root@ian-virtual-machine:/home/ian/Ian/xLua-master/build# ./make_android_luajit_arm64.sh Building armv7 lib make -C src clean make[1]: 进入目录“/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src” rm -f luajit libluajit.a libluajit.so host/minilua host/buildvm lj_vm.S lj_bcdef.h lj_ffdef.h lj_libdef.h lj_recdef.h lj_folddef.h host/buildvm_arch.h jit/vmdef.lua .o host/.o .obj .lib .exp .dll .exe .manifest .pdb .ilk make[1]: 离开目录“/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src” ==== Building LuaJIT 2.1.0-beta3 ==== make -C src make[1]: 进入目录“/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src” HOSTCC host/minilua.o HOSTLINK host/minilua DYNASM host/buildvm_arch.h HOSTCC host/buildvm.o HOSTCC host/buildvm_asm.o HOSTCC host/buildvm_peobj.o HOSTCC host/buildvm_lib.o HOSTCC host/buildvm_fold.o HOSTLINK host/buildvm BUILDVM lj_vm.S ASM lj_vm.o CC lj_gc.o BUILDVM lj_ffdef.h CC lj_err.o CC lj_char.o BUILDVM lj_bcdef.h CC lj_bc.o CC lj_obj.o CC lj_buf.o CC lj_str.o CC lj_tab.o CC lj_func.o CC lj_udata.o CC lj_meta.o CC lj_debug.o CC lj_state.o CC lj_dispatch.o CC lj_vmevent.o CC lj_vmmath.o CC lj_strscan.o CC lj_strfmt.o CC lj_strfmt_num.o CC lj_api.o CC lj_profile.o CC lj_lex.o CC lj_parse.o CC lj_bcread.o CC lj_bcwrite.o CC lj_load.o CC lj_ir.o CC lj_opt_mem.o BUILDVM lj_folddef.h CC lj_opt_fold.o CC lj_opt_narrow.o CC lj_opt_dce.o CC lj_opt_loop.o CC lj_opt_split.o CC lj_opt_sink.o CC lj_mcode.o CC lj_snap.o CC lj_record.o CC lj_crecord.o BUILDVM lj_recdef.h CC lj_ffrecord.o CC lj_asm.o CC lj_trace.o CC lj_gdbjit.o CC lj_ctype.o CC lj_cdata.o CC lj_cconv.o CC lj_ccall.o CC lj_ccallback.o CC lj_carith.o CC lj_clib.o CC lj_cparse.o CC lj_lib.o CC lj_alloc.o CC lib_aux.o BUILDVM lj_libdef.h CC lib_base.o CC lib_math.o CC lib_bit.o CC lib_string.o CC lib_table.o CC lib_io.o CC lib_os.o CC lib_package.o CC lib_debug.o CC lib_jit.o CC lib_ffi.o CC lib_init.o AR libluajit.a CC luajit.o BUILDVM jit/vmdef.lua DYNLINK libluajit.so LINK luajit OK Successfully built LuaJIT make[1]: 离开目录“/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src” ==== Successfully built LuaJIT 2.1.0-beta3 ==== -- Configuring done -- Generating done -- Build files have been written to: /home/ian/Ian/xLua-master/build/build_lj_v7a [ 6%] Linking C shared library libxlua.so [100%] Built target xlua Building x86 lib make -C src clean make[1]: 进入目录“/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src” rm -f luajit libluajit.a libluajit.so host/minilua host/buildvm lj_vm.S lj_bcdef.h lj_ffdef.h lj_libdef.h lj_recdef.h lj_folddef.h host/buildvm_arch.h jit/vmdef.lua .o host/.o .obj .lib .exp .dll .exe .manifest .pdb .ilk make[1]: 离开目录“/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src” ==== Building LuaJIT 2.1.0-beta3 ==== make -C src make[1]: 进入目录“/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src” HOSTCC host/minilua.o HOSTLINK host/minilua DYNASM host/buildvm_arch.h HOSTCC host/buildvm.o HOSTCC host/buildvm_asm.o HOSTCC host/buildvm_peobj.o HOSTCC host/buildvm_lib.o HOSTCC host/buildvm_fold.o HOSTLINK host/buildvm BUILDVM lj_vm.S ASM lj_vm.o CC lj_gc.o BUILDVM lj_ffdef.h CC lj_err.o CC lj_char.o BUILDVM lj_bcdef.h CC lj_bc.o CC lj_obj.o CC lj_buf.o CC lj_str.o CC lj_tab.o CC lj_func.o CC lj_udata.o CC lj_meta.o CC lj_debug.o CC lj_state.o CC lj_dispatch.o CC lj_vmevent.o CC lj_vmmath.o CC lj_strscan.o CC lj_strfmt.o CC lj_strfmt_num.o CC lj_api.o CC lj_profile.o CC lj_lex.o CC lj_parse.o CC lj_bcread.o CC lj_bcwrite.o CC lj_load.o CC lj_ir.o CC lj_opt_mem.o BUILDVM lj_folddef.h CC lj_opt_fold.o CC lj_opt_narrow.o CC lj_opt_dce.o CC lj_opt_loop.o CC lj_opt_split.o CC lj_opt_sink.o CC lj_mcode.o CC lj_snap.o CC lj_record.o CC lj_crecord.o BUILDVM lj_recdef.h CC lj_ffrecord.o CC lj_asm.o CC lj_trace.o CC lj_gdbjit.o CC lj_ctype.o CC lj_cdata.o CC lj_cconv.o CC lj_ccall.o CC lj_ccallback.o CC lj_carith.o CC lj_clib.o CC lj_cparse.o CC lj_lib.o CC lj_alloc.o CC lib_aux.o BUILDVM lj_libdef.h CC lib_base.o CC lib_math.o CC lib_bit.o CC lib_string.o CC lib_table.o CC lib_io.o CC lib_os.o CC lib_package.o CC lib_debug.o CC lib_jit.o CC lib_ffi.o CC lib_init.o AR libluajit.a CC luajit.o BUILDVM jit/vmdef.lua DYNLINK libluajit.so LINK luajit OK Successfully built LuaJIT make[1]: 离开目录“/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src” ==== Successfully built LuaJIT 2.1.0-beta3 ==== -- Configuring done -- Generating done -- Build files have been written to: /home/ian/Ian/xLua-master/build/build_lj_x86 [ 6%] Linking C shared library libxlua.so [100%] Built target xlua Building arm64-v8a lib make -C src clean make[1]: 进入目录“/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src” rm -f luajit libluajit.a libluajit.so host/minilua host/buildvm lj_vm.S lj_bcdef.h lj_ffdef.h lj_libdef.h lj_recdef.h lj_folddef.h host/buildvm_arch.h jit/vmdef.lua .o host/.o .obj .lib .exp .dll .exe .manifest .pdb .ilk make[1]: 离开目录“/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src” ==== Building LuaJIT 2.1.0-beta3 ==== make -C src make[1]: 进入目录“/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src” HOSTCC host/minilua.o HOSTLINK host/minilua DYNASM host/buildvm_arch.h HOSTCC host/buildvm.o HOSTCC host/buildvm_asm.o HOSTCC host/buildvm_peobj.o HOSTCC host/buildvm_lib.o HOSTCC host/buildvm_fold.o HOSTLINK host/buildvm BUILDVM lj_vm.S ASM lj_vm.o CC lj_gc.o BUILDVM lj_ffdef.h CC lj_err.o CC lj_char.o BUILDVM lj_bcdef.h CC lj_bc.o CC lj_obj.o CC lj_buf.o CC lj_str.o CC lj_tab.o CC lj_func.o CC lj_udata.o CC lj_meta.o CC lj_debug.o CC lj_state.o CC lj_dispatch.o CC lj_vmevent.o CC lj_vmmath.o CC lj_strscan.o CC lj_strfmt.o CC lj_strfmt_num.o CC lj_api.o CC lj_profile.o CC lj_lex.o CC lj_parse.o CC lj_bcread.o CC lj_bcwrite.o CC lj_load.o CC lj_ir.o CC lj_opt_mem.o BUILDVM lj_folddef.h CC lj_opt_fold.o CC lj_opt_narrow.o CC lj_opt_dce.o CC lj_opt_loop.o CC lj_opt_split.o CC lj_opt_sink.o CC lj_mcode.o CC lj_snap.o CC lj_record.o CC lj_crecord.o BUILDVM lj_recdef.h CC lj_ffrecord.o CC lj_asm.o CC lj_trace.o CC lj_gdbjit.o CC lj_ctype.o CC lj_cdata.o CC lj_cconv.o CC lj_ccall.o CC lj_ccallback.o CC lj_carith.o CC lj_clib.o CC lj_cparse.o CC lj_lib.o CC lj_alloc.o CC lib_aux.o BUILDVM lj_libdef.h CC lib_base.o CC lib_math.o CC lib_bit.o CC lib_string.o CC lib_table.o CC lib_io.o CC lib_os.o CC lib_package.o CC lib_debug.o CC lib_jit.o CC lib_ffi.o CC lib_init.o AR libluajit.a CC luajit.o BUILDVM jit/vmdef.lua DYNLINK libluajit.so LINK luajit OK Successfully built LuaJIT make[1]: 离开目录“/home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src” ==== Successfully built LuaJIT 2.1.0-beta3 ==== -- Configuring done -- Generating done -- Build files have been written to: /home/ian/Ian/xLua-master/build/build_lj_v8a [ 6%] Linking C shared library libxlua.so [100%] Built target xlua root@ian-virtual-machine:/home/ian/Ian/xLua-master/build# /home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src/luajit* -v -su: /home/ian/Ian/xLua-master/build/luajit-2.1.0b3/src/luajit: 无法执行二进制文件: 可执行文件格式错误

`

zhangchu1994 commented 4 years ago

7558E571-CD39-40af-A2BD-58AE293E471C 222222223

chexiongsheng commented 4 years ago

这不是很明显的么?用android脚本编译出来的可执行文件,只能在android下跑。 你想在linux下跑,就用linux的编译脚本。