Отказ от GMP на Mac

искусственный интеллект C++

GMP очень удобен для выполнения операций с большим числом. Раньше он не устанавливался на Mac. При пересмотре новой версии «Структура данных для разработки алгоритмов (версия на языке C++)» нам нужно добавить некоторый контент, поэтому я установил его.

Текущая система - Big Sur 11.1, это свежая попытка, скачал gmp-6.2.1 и распаковал его (будьте осторожны, чтобы загрузитьgmp-6.2.1.tar.xzВам не нужно распаковывать его с помощью lz), поместите его в/usr/local/Под содержанием.

Установить до конца:

  • cd gmp-6.2.1/
  • ./configure
  • make
  • make check
  • sudo make install

первоначальноinclude <gmp.h>Его можно случайно использовать в командной строке, но, к сожалению, я пробовал XCode, это слишком хлопотно, решение:

  • Search Paths > Header Search Pathsдобавить/usr/local/include.
  • Search Paths > Library Search Pathsдобавить/usr/local/lib.
  • Linking > Other Linker Flagsдобавить-lgmp.

Я думал, что все в порядке, и, наконец, сообщил об ошибке:

  • ld: symbol(s) not found for architecture arm64.

Присмотритесь, я его раньше регулировал в угоду скорости.Releaseрежим, по умолчаниюBuild Active ArtchitectureзаNo, но GMP, похоже, не поддерживает этоarm64, так изменилосьBuild Active ArtchitectureзаYesпросто отлично, илиExcluded ArtchitecturesПучокarm64Вы также можете исключить его.

Предупреждение:ld: warning: ignoring file /usr/local/lib//libgmp.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64, я надеюсь, что друзья с чипом M1 смогут протестировать его.

Кажется, у Homebrew есть обсуждение по этому поводу, я посмотрю, когда освобожусь:

Get GMP building on Apple Silicon #57315

GitHub.com/homebrew/Хорошо…

ghc: apply arm64 compatibility patch to static gmp #57892

GitHub.com/homebrew/Хорошо…