0
我有兩個函數聲明如下,使用extern "C"
aming來避免名稱混亂。_GLOBAL__I_的用途是什麼?
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jobject JNICALL Java_com_trident_tv_si_SIManagerImpl_nGetServiceDetails
(JNIEnv *, jobject, jint);
JNIEXPORT jobject JNICALL Java_com_trident_tv_si_SIManagerImpl_nGetServiceCurrentEvent
(JNIEnv *, jobject, jint);
#ifdef __cplusplus
}
#endif
#endif
出人意料的是,第二功能還是有錯位的名字_GLOBAL__I_Java_com_trident_tv_si_SIManagerImpl_nGetServiceCurrentEvent
,我想知道什麼是它的目的和原因的第一個函數沒有產生一個?
00004d58 T Java_com_trident_tv_si_SIManagerImpl_nGetServiceCurrentEvent
0000533a T Java_com_trident_tv_si_SIManagerImpl_nGetServiceDetails
0000494f t _GLOBAL__I_Java_com_trident_tv_si_SIManagerImpl_nGetServiceCurrentEvent
編輯:
在這裏找到一些。但是,還沒有明確的答案。
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12293