Получение MPFR для сборки на Cygwin - PullRequest
4 голосов
/ 21 мая 2011

Я потратил целый день на настройку GCC в соответствии с

http://cygwin.wikia.com/wiki/How_to_install_GCC_4.3.0

На шаге gcc make мне сказали, что для продолжения работы по какой-либо причине нужен компилятор c ++, поэтому яобновил Cygwin обычным способом и получил gcc-c ++.

После этого cgywin любезно удалил 3 библиотеки prereq, которые я установил ранее,

Так что я решил переделать их,GMP работал нормально, а потом я попал в MPFR.По какой-то причине MPFR выдает эту ошибку:

configure: error: libgmp not found or uses a different ABI.

Ресурсы упоминают об этой ошибке здесь.

Я почти уверен, что он нашел GMP в порядке, как показывает cygcheckбез проблем, и конфиг даже упоминает, что находит его.

Когда я пытаюсь:

./configure --with-gmp-build=/gmp/,

, он выдает:

error: header files gmp-impl.h and longlong.h not found

До сих пор я не былвозможность заставить MPFR работать, несмотря на поиск в Google и попытки в течение нескольких часов.

MPC также не может найти GMP обычным способом.

Я также пытался просто передать библиотеки GCC в подкаталогеи позволяя ему скомпилировать их.

Когда я пытаюсь это сделать, он переходит к шагу make, затем выдает ошибку stage1-bubble и завершается ошибкой.Нет описания ошибки или чего-либо еще.

Понятия не имею, что еще попробовать.

Ответы [ 4 ]

4 голосов
/ 20 января 2012

После компиляции и установки gmp у меня возникла та же проблема при сборке mpfr, пока я не установил правильный путь поиска в библиотеке:

export LD_LIBRARY_PATH=/usr/local/lib
export LIBRARY_PATH=/usr/local/lib
export CPATH=/usr/local/include

, как объяснено в http://cygwin.wikia.com/wiki/How_to_install_GCC_4.3.0

1 голос
/ 10 июня 2012

Вместо этого:

./configure --with-gmp-build=/gmp/

ИСПОЛЬЗУЙТЕ ЭТО:

./configure --with-gmp-build=/gmp

Не нравится, когда в конце стоит символ "/".

0 голосов
/ 17 апреля 2018

Я знаю, что этот пост несколько устарел, но я искал ответ или результаты в похожей ситуации, но с гораздо более актуальными версиями тех же библиотек.Читая этот пост, а также некоторые предложения и другие онлайн-материалы, я смог собрать все воедино.Так что для тех, кто может работать с новейшими выпусками, здесь это звучит так:


Сначала вы, возможно, захотите сначала сконфигурировать, создать и установить GMP для C и C ++ в качестве статических библиотек;также обратите внимание на архитектуру x86 или x64.Как только вы запустите make, сделайте проверку, сделайте установку;и вы уверены, что у вас нет ошибок, тогда при переходе к настройке MPFR вы захотите запустить его следующим образом:

./configure --with-gmp-build=/path/to/gmp --enable-static --disable-shared

, и если пути установлены правильно, это должно дать вам необходимую сгенерированную командуфайл.


Я новичок в среде и командах Unix-Posix и новичок в Cygwin.Я в основном использовал платформы Windows и очень мало Mac или Apple.На самом деле, я работаю над этим чуть меньше недели, потому что пытаюсь сделать то же самое.Так что теперь я погружаюсь в совершенно новый мир Unix ... но он как бы симулируется через Cygwin, так как я все еще работаю с windows.

Я пытаюсь создать GMP, MPIR, MPFR & MPFRC ++все из последних оригинальных дистрибутивов и в конечном итоге попытаюсь интегрировать их в Visual Studio 2017.

Я действительно нашел этот пост, потому что мне удалось собрать MPIR через визуальную студию с помощью python и vyasm, но какдля GMP мне нужен Cygwin с GCC.Мне потребовалось немного времени, чтобы понять, как заставить GMP правильно строить, но как только я выполнил тесты и выполнил их, я смог пройти все с 0 неудачами.Затем я начал работать с MPFR так же, как и вы.

Моя похожая проблема была после того, как я запустил ./configure по умолчанию, он сообщал мне, что libgmp не найден.Также, если бы я попытался вызвать make, он бы ничего не делал, так как файл make не существует.Это привело меня к поиску в Google ... При поиске советов, предложений и т. Д. Я наткнулся на этот вопрос.Пока я читал эти вопросы и ответы, установочные файлы, некоторые другие часто задаваемые вопросы и даже другой веб-сайт, я смог собрать все воедино, и я обнаружил, что это работает, что я предложил выше.

НеВам нужно только установить флаг --with-gmp-build, но вам также нужно установить соответствующие типы библиотек, из которых был построен gmp, и вам нужно убедиться, что типы архитектуры тоже совпадают.У них должны быть одинаковые соответствующие ABI.


Ах, как только я собирался закончить вводить этот ответ, сделайте проверку только что закончив работу через Cygwin, и у меня будет результат:

Testsuite summary for MPFR 4.0.1
============================================================================
# TOTAL: 180
# PASS:  180
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================

Надеюсь, это поможет вам.Единственное для меня;Мне придется вернуться и, вероятно, запустить все это снова с самого начала, включая GMP, только потому, что я считаю, что я делал только GCC, а не G ++, и мой следующий шаг - попытаться собрать MPFRC ++.

Тогда я мог быпопробуйте сделать некоторые связанные библиотеки с здесь впоследствии.Мой первый этап - попытаться собрать их все через Cygwin и GCC / G ++.Следующим шагом будет попытка перенести их на Visual Studio 2017.

0 голосов
/ 06 сентября 2017

Вы можете использовать --with-gmp-lib = / path / to / gmp / lib / dir

...