無論我怎麼努力,比如增加了編譯器標誌-fno-exceptions -fno-rtti
,我總是在我的共享對象得到這些異常處理功能:刪除異常/開卷功能的共享對象
出現這種情況無論我編譯爲C還是C++。
它發生這些包括(編譯爲C++ - 沒有試過編譯爲C):
#include <jni.h>
#include <math.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
這裏是我的所有的包括一個我已經編譯爲C和C++(最/所有這些都不是需要的問題發生):
#include <jni.h>
#ifndef __cplusplus
#include <stdbool.h>
#endif
#include <math.h>
#ifdef __ANDROID__
#include <GLES2/gl2.h>
#else
#error "No graphics implementation for the target platform"
#endif
#ifdef __ANDROID__
#include <SLES/OpenSLES.h>
#include <SLES/OpenSLES_Android.h>
#include <pthread.h>
#include <android/asset_manager.h>
#include <android/asset_manager_jni.h>
#else
#error "No audio implementation for the target platform"
#endif
#include <time.h>
typedef struct timespec timespec;
// for malloc, free and memset
#include <stdlib.h>
#include <string.h>
我該如何擺脫這些異常處理函數一勞永逸? NDK工具鏈是否覆蓋了我的編譯器標誌?
您是否將其他代碼與您的鏈接?你有沒有檢查過你的.o文件來查看他們引用的內容? – fadden
我使用jni.h以及像math.h,stdint.h,stdlib.h和string.h這樣的標準C庫標題,但沒有使用任何其他庫。你能告訴我如何檢查我的.o文件嗎? – fgsfdsfgts