2012-09-13 42 views
2

請指教有關在mac上構建android LuaJit或解決pseudo-op: '.private_extern'彙編程序錯誤的提示。我在Mac和下一條指令在mac上爲Android編譯LuaJit 2。彙編程序錯誤:lj_vm.s:5:錯誤:未知僞操作:`.private_extern'

到complie LuaJit2在DOC /安裝或http://luajit.org/install.html#android

我做出的唯一改變是改變linux-x86darwin-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_NDKr8b NDK。但我也試過r8r7,我試過gcc 4.6r8b。在所有情況下,我都會遇到類似的錯

 
==== 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' 

… 
+0

THX爲這個問題。當在windows主機上爲android編譯時,我有一些Luajit構建過程的輸出。你的帖子讓我重新思考我傳遞給Luajit CROSS和TARGET_FLAGS的路徑。我認爲從cygwin他們應該是/ cygdrive/c,因爲它證明我錯了 - c:/是從android ndk gcc想要的--sysroot的方式。 – Wojciech

回答

0

我能夠建立沒有問題的LuaJIT 2.0.0-beta10。發佈的問題是在構建beta9或更低版本時:看起來像是修補了它的任何問題。

2

我不確定,但我認爲當您嘗試第一次構建沒有TARGET_SYS=Linux時,在構建失敗之後,您在src/host目錄中忘記了乾淨的*.o文件。

出於這個原因,你已經看到了很多類似的錯誤:Error: unknown pseudo-op: '.private_extern'

清潔所有產生並建造文件運行make clean