ndk-build を使用して libpng ソース コードをデバッグ モードでコンパイルすると、pngrtran.c に「内部コンパイラ エラー」が表示されます。しかし、リリース モードでコンパイルすると、成功する可能性があります。これは libpng のバグですか? どうすればこれを解決できますか?
2 に答える
これは libpng のバグではありません。プログラムが「内部エラー」として説明するものはすべて、プログラムのバグです (libpng はこれを行いますが、「libpng: 内部エラー」と表示されます!) つまり、コンパイラのバグです。
ndk 担当者に報告するか、コンパイラ ベンダー (おそらく GNU) に直接問い合わせることができます。
問題を解決することはできません - コンパイラの修正が必要です (内部エラーであるとは主張しないメッセージを出力するためだけかもしれませんが、少なくともそれは必要です)。libpng をデバッグ モードでコンパイルしないことで、問題を回避できます。私はこれが Android 用であると想定しているので、(私が信じている) デバッグを組み合わせてコードをデバッグすることができます (これは、少なくとも 1 つのコンパイラを備えた Windows では機能しません!)
また、問題を明らかにするコンパイラ オプションを特定することもできます。リリースとデバッグの両方でコンパイラに渡されるオプションを比較し、違いを二等分して、問題を 1 つの設定に絞り込めるかどうかを確認します。
ジョン・ボウラー jbowler 2 acm.org
Android チームはこのバグについて知っておく必要があります。古いものの再浮上として: http://code.google.com/p/android/issues/detail?id=20862