1

Android (arm) 用の GMP をコンパイルしようとしていますが、非常に奇妙なエラーが発生します。最初に、ここで別のSOの質問を説明したように、いくつかのことを設定しました:

    export NDKROOT=/prod/ndk
    $NDKROOT/build/tools/make-standalone-toolchain.sh --platform=android-9 --  install-dir=$NDKROOT/android_armeabi   
    export CC="$NDKROOT/android_armeabi/bin/arm-linux-androideabi-gcc --sysroot=$NDKROOT/android_armeabi/sysroot"
    export CXX="$NDKROOT/android_armeabi/bin/arm-linux-androideabi-g++ --sysroot=$NDKROOT/android_armeabi/sysroot"
    export AR="$NDKROOT/android_armeabi/bin/arm-linux-androideabi-ar"
    export SYSROOT="$NDKROOT/android_armeabi/sysroot"
    export PATH="$NDKROOT/android_armeabi/bin":$PATH

次に、実行するだけ./configure --enable-cxx --prefix=/local/to/where/i/want/to/install --host=arm-none-linux-gnueabiで構成がうまくいき、次のような出力が得られます。

      Version:           GNU MP 5.1.1
      Host type:         arm-none-linux-gnueabi
      ABI:               standard
      Install prefix:    /location/to/where/i/want/to/install
      Compiler:          /prod/ndk/android_armeabi/bin/arm-linux-androideabi-gcc --   sysroot=/prod/ndk/android_armeabi/sysroot -std=gnu99
      Static libraries:  yes
      Shared libraries:  yes

ここまではうまくいきますが、実行するmakeと次のエラーが表示されます。

    ismpf.cc: In function 'std::istream& operator>>(std::istream&, mpf_ptr)':
    ismpf.cc:48:43: error: 'struct lconv' has no member named 'decimal_point'
    make[2]: *** [ismpf.lo] Error 1
    make[2]: Leaving directory `~/Downloads/gmp-5.1.1/cxx'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `~/Downloads/gmp-5.1.1'
    make: *** [all] Error 2

だから私の最初の問題はそこにあります。何か案は?

好奇心から、上記とまったく同じ構成コマンドを再実行しようとしましたが、そのsudo前に使用しました。数秒後、次のメッセージが表示されます。

    configure: error: Oops, mp_limb_t is 64 bits, but the assembler code
    in this configuration expects 32 bits.

2 つ目 (そして発生する非常に奇妙な問題) があります。

もう一度好奇心から、作成したすべての変数を再起動してクリアし、GMP マニュアルが推奨するコマンドを実行してみました: ./configure --prefix=/location/ --enable-cxx --host=arm- linux-androideabi

./configure が実行され、make はうまくいきますが、実行すると 9/9 テストはすべて失敗しますmake check。これらのエラーで正しい方向に向けたり、Android 用の GMP を正しくコンパイルする方法を教えてもらえますか? どんな助けでも大歓迎です。

4

1 に答える 1

0

CFLAGS 環境変数の設定を解除すると、問題が解決しました。

于 2013-10-24T16:04:04.920 に答える