4

Windows 7 64 ビット コンピューターで GMP をビルドしようとしているので、 を実行しconfig.guessk10-pc-msys. (私は msys2 と mingw64 を使用しています)

それから私は走った

./configure --prefix=/c/gmp-6.1.0 --build=k10-pc-msys --enable-cxx

しかし、これはこのエラーで終了します

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

そのため、追加で構成を再度実行しましたABI=64(強制的mp_limb_tに64ビットにすることを考えています)が、これは同じエラーで終了します。この後、追加しようとしましたがCC="g++"(必要だと思い--enable-cxxますg++)、もう一度このエラーが発生します。

私はこれについて多くのことをグーグルで検索し、GitHub の juliaLang に報告された 1 つの問題を見つけました。これは私の問題に似ていますが、Julia を使用していないため、解決策はうまくいかないようです。

誰かがこのエラーを知っていて、それを修正する方法を見つけましたか?

注意: msys2 が既にインストールされており、使用できることがわかりました。しかし、msys2 からインストールされた GMP を使用して NTL をビルドしただけで、私のプログラムの実行時間は約 70% 増加しました。これは、自分のコンピューター用にビルドされていないため、まったく最適化されていないためだと思います。

編集:設定がなくても(ただ./configure --prefix=/c/gmp-6.1.0)同じエラーで終了します。

背景: NTLのスレッド セーフ ビルドを使用したいと考えています。しかし、NTL スレッド セーフを構築するには、GMP を使用する必要があります。

4

1 に答える 1

5

This is solved by adding --host=x86_64-w64-mingw32 to the configure command. This is generally recommended to build software that uses Autotools or some form of configure script for Windows 64-bit.

You can read this page on the MinGW-w64 wiki to learn more about these things.

于 2015-11-23T16:16:00.500 に答える