我使用ndk和Eclipse ADT來爲Android構建應用程序,並且工作正常。不過,我想知道爲什麼構建過程涉及編譯arm和拇指,即每次我在源文件中進行修改時,都會重新編譯arm和thumb。有必要嗎 ?如果不是,我怎麼能告訴建設者只編譯和鏈接armabi-V7a?這將除以2構建處理時間...爲什麼arm和thumb在Eclipse ADT中編譯?
回答
你可能是指,對於武裝V6和武裝V7A?兩者都可以編譯爲ARM或THUMB。這由LOCAL_ARM_MODE在Android.mk控制。要禁用armeabi,在設置
APP_ABI=armeabi-v7a
Application.mk。這不僅會縮短您的構建時間,還會縮短APK的大小。
我找到了答案。我用JUCE框架,它會自動生成Android.mk用這樣的測試文件中它: IFEQ($(TARGET_ARCH_ABI),armeabi-V7A) LOCAL_ARM_MODE:=手臂 ENDIF 有一個在JUCE它默認設置要求armeabi和armeabi-V7a庫。我改變了這只是armeabi-V7a,並沒有得到雙重構建過程(手臂+拇指)了。 但你的答案幫助我看在正確的地方,因此+1 ... :) – DrMad 2014-10-01 07:51:11
我不明白他們爲什麼不喜歡手臂v7a上的拇指代碼,但即使您刪除** ifeq **,你仍然有雙重構建,如果你只瞄準現代設備,這是一個麻煩。 – 2014-10-01 08:48:36
- 1. 編譯爲Thumb或ARM的ARM ELF的腳本/工具謂詞
- 2. 混合ARM和THUMB指令
- 3. 爲arm編譯交叉編譯e2fsprogs
- 4. 是否可以爲ARM和THUMB生成單獨的.exe文件?
- 5. 爲什麼在ARM處理器上,PC仍然處於Thumb模式的32位?
- 6. 爲什麼Eclipse不能在java 1.5中編譯我的代碼?
- 7. 在ARM/Thumb(IOS)上解碼BLX指令
- 8. ARM Thumb模式:代碼大小不減
- 9. 在ARM/THUMB狀態之間切換
- 10. 爲什麼不能在第二次下載Eclipse ADT?
- 11. eclipse adt卡在調用android預編譯器
- 12. 在ARM上編譯JInput
- 13. 爲什麼「case :: LABEL:」在g ++中編譯?
- 14. 編譯Linux內核和uBoot時爲什麼使用arm-linux-gnueabi-gcc而不使用arm-none-eabi-gcc?
- 15. 在eclipse中安裝Android SDK和ADT
- 16. 爲什麼不編譯?
- 17. 爲什麼不編譯?
- 18. 爲什麼不編譯?
- 19. 爲什麼不能編譯?
- 20. 爲什麼不編譯?
- 21. `this.type`:爲什麼不編譯?
- 22. 爲什麼Eclipse + ADT插件使CPU保持100%
- 23. 爲arm-gcc編譯器安裝庫
- 24. LLVM編譯選項爲ARM /樹莓派
- 25. 爲linux arm目標交叉編譯greenlet
- 26. 無法將NTP交叉編譯爲ARM
- 27. 爲ARM Sitara交叉編譯postgresql AM335x
- 28. 爲ARM體系結構編譯libcivil
- 29. 交叉編譯爲ARM-Linux的
- 30. 爲arm編譯oprofile時出錯
目前,android庫傾向於使用混合的ARM和THUMB指令 - 內部功能通常是THUMB,而外部鏈接鉤子是ARM。 – 2014-09-30 18:28:39