0

私の環境は arm-linux-androideabi (東芝 AC100 上の Android 2.2) です。私の環境には 2 セットの GCC コンパイラがあります (デバイスの別の場所にインストールされています)。

  1. 4.4.3 ( Android 上の Android NDK )
  2. 4.6.0 ( Android では R + GCC )

私が直面している問題は、gcc-4.6.0 が実行されるたびに segfault が発生することです (ただし、すべてのタスクが正常に実行され、おそらく終了ルーチンで最後に segfault が発生するだけです)、ld-4.4.3 と ar-4.4.3 は失敗します。私の環境で実行します。一方、gcc-4.4.3 は美しく動作し、ld-4.6.0 や ar-4.6.0 も同様です。

したがって、デバイス上でビルド中に 4.4.3 を使用して configure を実行すると、configure ステップで失敗します。これは、configure テスト プログラムが正常にコンパイルされた場合でも、gcc segfault が発生し、ゼロ以外の値 (139) が返されるためです。ただし、configure を 4.6.0 で実行すると、configure は十分に実行されますが、ビルド ( make all) はリンクと静的ライブラリの作成で惨めに失敗します。

私の質問は次のとおりです。

  1. gcc-4.4.3 を使用してオブジェクト ファイルをコンパイルし ( gcc-4.4.3 -c input.c)、ld-4.6.0 とリンクすることはできますか ( ld-4.6.0 -o input input.o -lc )? つまり、問題のあるバイナリを削除し、動作するバイナリの組み合わせを使用してプロジェクトをビルドします。
  2. 警告がある場合、それは何ですか?
4

1 に答える 1

-1

シェルスクリプトを使用してgccを呼び出し、不正な終了コードを非表示にすることができます。

于 2012-05-07T20:52:32.133 に答える