Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android ndk-build幾個常見錯誤

Android ndk-build幾個常見錯誤

編輯:關於Android編程

近期在編譯Android時,ndk-build遇到一些錯誤,匯總一下(匯總來源參文末網址),方便參考。

一、error: exception handling disabled, use -fexceptions to enable

解決方法:

打開Android.mk文件,添加: LOCAL_CPPFLAGS += -fexceptions

也可以在Application.mk文件中添加APP_CPPFLAGS += -fexceptions

說明:從NDK r5就開始NDK的工具鏈就開始支持了C++的異常控制,只不過為了通用性的原因,所有的C++原文件被編譯的時候都是默認的是-fno-exceptions,即不不支持異常控制的。使用-fexceptions標記可以開啟異常控制。所以你只需要在你的每個模塊的Android.mk中添加LOCAL_CPPFLAGS += -fexceptions就可以了。

二、error:undefined reference to `__cxa_end_cleanup'

解決辦法:

打開Android.mk文件,添加

LOCAL_LDFLAGS = $(NDK_HOME)/platforms/$(ANDROID_SDK_VERSION)/$(ARCHETECTURE_TYPE)/usr/lib/libstdc++.a

LOCAL_CPPFLAGS += -fexceptions -lstdc++

注意,其中NDK_HOME為環境變量,表示NDK的安裝路徑。

三、error:undefined reference to `__android_log_print'

解決辦法:

打開Android.mk文件,添加

LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog

四、c++模板庫

Android.mk:

LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog $(NDK_HOME)/sources/cxx-stl/stlport/libs/armeabi/libstlport_static.a

LOCAL_C_INCLUDES += $(NDK_HOME)/sources/cxx-stl/stlport/stlport

Application.mk:

APP_CPPFLAGS += -fexceptions

APP_STL := stlport_static

APP_CPPFLAGS += -frtti

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved