2012-03-03 46 views
1

我想重建我的Qt應用程序的android,所以我選擇必需品。但是,當我試圖與OpenAL的軟鏈接爲Android(這是staticly建),引發的錯誤:未能鏈接openal軟與必需品

/media/Files/QtCode/AndroidPlayer/libs/armeabi/libopenal.a(android.o): In function `JNI_OnLoad': 
/media/Files/openal-android/android/jni/../../Alc/backends/android.c:51: multiple definition of `JNI_OnLoad' 
qtmain_android.o:qtmain_android.cpp:(.text.JNI_OnLoad+0x0): first defined here 
collect2: ld returned 1 exit status 

我還沒學會Android或Java編程,所以我不知道如何在不鏈接共享庫.a文件(openal軟件共享庫只提供.so文件)。

回答

0

這意味着JNI_OnLoad函數是在多個地方定義的。一旦在OpenAL Soft的android.c文件中,並且一次在Qt的qtmain_android.cpp中。

JNI_OnLoad是Android在加載時調用每個共享庫的特殊函數。顯然你不能有兩個。

我建議你把OpenAL和Qt放入單獨的共享庫中。這樣Android將正確調用兩個JNI_OnLoad函數。