Я недавно установил gcc 6.1, специально для библиотек, упомянутых в заголовке (gmp / mpfr / mpc), я следил за тем, что сказано на веб-сайте GNU:
GNU Multiple Precision Library (GMP) версии 4.3.2 (или новее) Необходима для сборки GCC. Если исходный дистрибутив GMP находится в подкаталоге источников GCC с именем gmp, он будет собран вместе с GCC. В качестве альтернативы, если GMP уже установлен, но его нет в пути поиска вашей библиотеки, вам придется выполнить настройку с помощью параметра --with-gmp configure. См. Также --with-gmp-lib и --with-gmp-include. Древовидная сборка поддерживается только той версией GMP, которую устанавливает download_prerequisites.
Подобно другим библиотекам, а именно, я загрузил исходные коды последней версии, скопированной в моем каталоге GCC, прежде чем выполнять «configure», «make» и «make install» gcc, предполагая, что он был бы собран вместе с gcc. Однако, когда я пытаюсь запустить скомпилированный проект, который использует библиотеку gmp, он говорит:
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). Amd расширил файлы предыдущего шага в таких папках. 4. Для gcc я выполнил ./configure --prefix=/path/to/gcc_build
5. Я выполнил make
6. затем make install
Если я не использую библиотеки, я могу компилировать и выполнять без проблем, когда мне нужны эти библиотеки, после успешной компиляции возвращается упомянутая мною ошибка. Если я посмотрю на пути lib/
и lib64/
, нет ничего, что связано с библиотеками gmp.
-rpath
или попробовать добавитьLD_LIBRARY_PATH
env при выполнении проекта. - person Mine   schedule 06.07.2016locate
, я бы лучше проверилlocate libgmp.so
(возможно, после запускаupdatedb
). Что касается вашего последнего комментария, статическая сборка генерирует толькоlibgmp.a
, а неlibgmp.so*
. - person Marc Glisse   schedule 07.07.2016