2012-08-16 105 views
1

我想從C++代碼加載資源。並嘗試重複this way。但是當我嘗試構建它時,我得到:構建android-ndk-assets時出錯

E:\Android\Samples\android-ndk-assets\project>e:\Android\android-ndk-r8b\ndk-build 
Gdbserver  : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver 
Gdbsetup  : libs/armeabi/gdb.setup 
"Compile thumb : png <= pngrtran.c 
jni/libpng/pngrtran.c: In function 'png_do_expand': 
jni/libpng/pngrtran.c:3790:1: internal compiler error: in reload, at reload1.c:1061 
Please submit a full bug report, 
with preprocessed source if appropriate. 
See <http://gcc.gnu.org/bugs.html> for instructions. 
make: *** [obj/local/armeabi/objs-debug/png/pngrtran.o] Error 1 

回答

1

我在android-ndk-r8b中發生了同樣的錯誤。 看起來像GCC中的錯誤。你是否已經提交錯誤報告?

我發現這使錯誤代碼:

if (*(sp - 5) == red_high && 
     *(sp - 4) == red_low && 
     *(sp - 3) == green_high && //this line make error 
     *(sp - 2) == green_low && //this line make error 
     *(sp - 1) == blue_high && 
     *(sp ) == blue_low) 
    { 
     *dp-- = 0; 
     *dp-- = 0; 
    } 
+0

不,我沒有提交錯誤報告。 – user1025874 2012-09-03 09:53:17

+0

好的。我提交錯誤報告。 – Sergey 2012-09-08 16:19:40

1

我對Android的NDK-R8B類似的錯誤也是如此。

ndk-build NDK_DEBUG=1 < ---錯誤

嘗試NDK_BUILD標誌設置爲0。應編譯:它打電話時與NDK_DEBUG標誌設置NDK-建設發生。當然,這不會是可調試:(

ndk-build NDK_DEBUG=0 < ---沒有錯誤

+0

您可以通過引用或推測爲什麼'NDK_DEBUG'標誌影響編譯錯誤,從而大大提高您的答案。 – 2012-10-13 01:06:26

3

我只是碰到了這個問題爲好。另一個解決方法是通過向建庫作爲ARM代碼,而不是Thumb代碼下面一行到你的Makefile:

LOCAL_ARM_MODE := arm 

應該使用ARM模式... ARM指令需要兩倍的Thumb指令的空間,但也更復雜,能夠在一個單一的實現更大量的是沒有問題的指令,所以根據編譯器的聰明程度,結果代碼可能會變大r或更小,以及更高效或效率更低,但應執行相同的結果。