Сборка GMP 6.1.0 в 64-битной Windows 7 (msys2 / mingw64): настройка завершается неудачно, поскольку mp_limb_t не является 64-битным

Я пытаюсь собрать GMP на моем Windows 7 64-битном компьютере, поэтому я запускаю config.guess и получить k10-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++), но я снова получаю эту ошибку.

Я много гуглил об этом и нашел одну проблему, о которой сообщили juliaLang на GitHub это выглядит близко к моей проблеме, но решение, кажется, не работает для меня, так как я не использую Джулию.

Кто-нибудь знает эту ошибку и нашел способ ее исправить?

уведомлениеЯ вижу, что msys2 уже установлен, и я могу использовать его. Но время выполнения моей программы увеличилось примерно на 70% только после сборки NTL с установленным GMP из msys2. Я думаю, что это потому, что он не был построен для моего компьютера, поэтому он не оптимизирован вообще.

редактировать: Даже без каких-либо настроек (просто ./configure --prefix=/c/gmp-6.1.0) выходит с той же ошибкой.

Фон: Я хочу использовать потокобезопасную сборку NTL. Но для создания безопасного потока NTL, я должен использовать GMP.

4

Решение

Это решается добавлением --host=x86_64-w64-mingw32 к команде настройки. Как правило, это рекомендуется для создания программного обеспечения, которое использует Autotools или какой-либо другой сценарий настройки для 64-разрядной версии Windows.

Ты можешь читать эта страница в вики MinGW-w64 чтобы узнать больше об этих вещах.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]