1. 程式人生 > >code::Blocks 中配置android x86的編譯環境

code::Blocks 中配置android x86的編譯環境

之前是android arm 的編譯環境,現需改為android x86的環境
1. Project-->build options, 選擇android平臺,selected compiler 選擇 GNU GCC Compiler,之前arm環境選的是 GNU GCC Compiler for ARM
2. Project --> build options --> Compiler setting --> Other Options 目錄下,將 -march=armv7 改為 -march=i686
3. Search directories --> Compiler 中,由arm的包含路徑改為x86的包含路徑,我這裡使用的是android ndk r 8d,如下(假設放在D盤):
    D:\android-ndk-r8d\platforms\android-9\arch-x86\usr\include
    D:\android-ndk-r8d\sources\cxx-stl\gnu-libstdc++\4.4.3\include
    D:\android-ndk-r8d\sources\cxx-stl\gnu-libstdc++\4.4.3\libs\x86\include
4. Search directories --> Linker 中,由arm的引用庫路徑改為x86的引用庫路徑,如下:
    D:\android-ndk-r8d\platforms\android-9\arch-x86\usr\lib
    D:\android-ndk-r8d\sources\cxx-stl\gnu-libstdc++\4.4.3\libs\x86
    D:\android-ndk-r8d\toolchains\x86-4.4.3\prebuilt\windows\lib\gcc\i686-linux-android\4.4.3
5. 在選單欄的Setting --> Compiler,選擇 Global compiler setting --> Toolchain executables中填寫x86相關項,如下圖: 

               

6. 配置好環境後,我在編譯專案時遇到如下問題,
  (1) skipping incompatible 某一個庫檔案
       不相容的庫檔案:引用的庫檔案不是x86平臺下編譯出來的,在x86環境下重新編譯此庫即可
  (2) 出現錯誤:undefined reference to `__stack_chk_fail_local'
       Project --> build options --> Compiler setting --> Other Options 中加入:-fno-stack-protector 即可