在Mac上为Android编译LuaJit 2。汇编程序错误:lj_vm.s:5:错误:未知的伪操作:`.private_extern'

时间:2012-09-13 22:41:01

标签: android assembly android-ndk luajit

请告知有关在Mac上构建android LuaJit或一般解决pseudo-op: '.private_extern'汇编程序错误的提示。

我在Mac上并按照说明在doc / install或http://luajit.org/install.html#android中编译LuaJit2:

我做的唯一更改是将linux-x86更改为darwin-x86以获得NDK交叉编译器。我还在每个安装说明中添加了TARGET_SYS=Linux(我尝试过和不使用):“每当主机操作系统和目标操作系统不同时,您需要指定TARGET_SYS,否则您将获得汇编程序或链接程序错误......”

所以我的构建脚本如下所示:

NDK=$ANDROID_NDK
NDKABI=8
NDKVER=$NDK/toolchains/arm-linux-androideabi-4.4.3
NDKP=$NDKVER/prebuilt/darwin-x86/bin/arm-linux-androideabi-
NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-arm"

make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_SYS=Linux TARGET_FLAGS="$NDKF"

我的$ANDROID_NDK指向r8b NDK。但我也尝试了r8r7,并尝试使用gcc 4.6 r8b。在所有情况下,我都会遇到类似的错

==== Building LuaJIT 2.0.0-beta9 ====
make -C src
ASM       lj_vm.o
lj_vm.s: Assembler messages:
lj_vm.s:5: Error: unknown pseudo-op: `.private_extern'
lj_vm.s:8: Error: unknown pseudo-op: `.private_extern'
lj_vm.s:25: Error: unknown pseudo-op: `.private_extern'

…

2 个答案:

答案 0 :(得分:2)

我不确定,但我认为当您尝试在没有TARGET_SYS=Linux的情况下第一次构建时,在构建失败后忘记了*.o目录中的干净src/host文件。

出于这个原因,您发现了许多错误,例如:Error: unknown pseudo-op: '.private_extern'

要清除所有生成和构建的文件,请运行make clean

答案 1 :(得分:0)

我能够毫无问题地构建LuaJIT 2.0.0-beta10。发布的问题是在构建beta9或更低版本时:看起来他们修补了它的问题。