Я пытаюсь собрать 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.
Это решается добавлением --host=x86_64-w64-mingw32
к команде настройки. Как правило, это рекомендуется для создания программного обеспечения, которое использует Autotools или какой-либо другой сценарий настройки для 64-разрядной версии Windows.
Ты можешь читать эта страница в вики MinGW-w64 чтобы узнать больше об этих вещах.
Других решений пока нет …