2016-07-06 5 views
0

Я недавно установил GCC 6.1, в частности, для библиотек, упомянутых в названии (ГМП/MPFR/MPC) Я последовал за то, что гну сайт сказал:gcc 6.1. установка, gmp/mpfr/mpc не построена?

GNU Multiple Precision Library (GMP) версии 4.3. 2 (или более поздней) Необходимо построить GCC. Если дистрибутив источника GMP найден в подкаталоге источников GCC с именем gmp, он будет построен вместе с с GCC. В качестве альтернативы, если GMP уже установлен, но не находится в пути поиска в библиотеке, вам нужно будет настроить с помощью опции--with-gmp. См. Также --with-gmp-lib и --with-gmp-include. Встраивание в дереве поддерживается только с версией GMP, которую устанавливают download_prerequisites.

Похожего для других библиотек, а именно я скачал источники последней версии скопированной в моем каталоге НКИ, прежде чем делать «Configure», «сделать» и «сделать установку» НКИ при условии, что это был бы построен вместе с gcc. Однако, когда я пытаюсь запустить скомпилированный проект, который делает использование библиотеки ГМП это сказать:

error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory 

Так что я искал, где общий объект, но я не могу найти, где GCC установил его.

Должен ли я сначала компилировать GMP/MPFR и MPC перед установкой gcc? потому что я думал, что это не обязательно. Если мне не нужно было компилировать библиотеки, где предполагается установить GMP/MPFR и MPC?

Некоторые дополнительные детали:

Я не думаю, что я сделал что-то странное и сложное, я думаю. 1. Я загрузил gcc и поместил источник в каталог. 2. Я загрузил все эти библиотеки, как tar-файлы; 3. Создал три папки в корневых источниках gcc (gmp, mpfr и mpc) и расширил заготовки предыдущего шага в таких папках. 4. Для НКУ я выполнил ./configure --prefix=/path/to/gcc_build 5. Я выполнил make 6. Затем make install

Если я не использую библиотеки я могу скомпилировать и выполнить, не имея проблем, когда мне нужно эти библиотеки возвращается ошибка, о которой я упоминал, после успешного компиляции. Если я смотрю в дорожках lib/ и lib64/, ничего не связано с библиотеками gmp.

+0

Возможно, более точно описано, что вы сделали? Обычно, когда gcc создает gmp/mpfr/mpc как часть своей сборки, он строит только статические версии. У вас есть какая-то версия этих библиотек, где-то установлена? –

+0

@Marc Glisse См. Обновление, и нет, у меня нет установленной библиотеки, я предположил, что они были бы установлены во время установки gcc. – user8469759

+0

Объясните «скомпилированный проект», как вы связываете библиотеку? Возможно, вы захотите проверить '-rpath' или попробуйте добавить' LD_LIBRARY_PATH' env при выполнении проекта. – Mine

ответ

0

Исправьте меня, если я ошибаюсь.

Я компилирую GCC 6.3.0 со своего исходного сайта, используя cygwin, после исследования после этого сообщения Here сначала я скомпилирую GCC-инфраструктуры, включая GMP, MPFR, MPC также libelf, ppl (необязательно). Затем попытайтесь скомпилировать GCC с помощью этого command (потому что я нацелен на GCC для Linux, поэтому моя цель - i686-pc-linux-gnu). Я компиляции GCC инфраструктуры и добавление префикса к

--prefix=/opt/cross 

для GMP, MPFR, MPC также libelf и госзакупках.

Так что когда я компилирую GCC, я могу использовать.

--with-gmp=/opt/cross --with-mpfr=/opt/cross --with-mpc=/opt/cross 

и GCC автоматически отслеживают инфраструктуру, в которой они нуждаются, в/opt/cross directory.

Потому что много раз я стараюсь

./contrib/download_prerequisites 

следующего this метода, всегда получаю ошибку при попытке компиляции GCC.

Я сделал с этим методом, компилируя GCC также binutils для i686-pc-linux-gnu. Но я не пытаюсь использовать для компиляции ядра Linux, используя cygwin.

Извините за мой английский, и извините, если мои ответы OOT.

 Смежные вопросы

  • Нет связанных вопросов^_^