Я пытаюсь скомпилировать устаревшее программное обеспечение. (CERN Root 5.34)
Для этого мне нужно было установить gcc-5, так как я столкнулся с ошибками в последней версии gcc.
(Использование gcc-5 - всего лишь предположение. Я вполне уверен, что это должна быть «нормальная» версия для использования.)
Root компилируется с помощью системы configure / make.
Моя система - это Debian 9 Stretch. Чтобы не сломать мою систему и установить несколько версий gcc одновременно, я следовал следующей информации:
https://gcc.gnu.org/faq.html#multiple
Я выбрал префикс: --prefix=/home/user/Programs
Я скомпилировал gcc без проблем и запустил make install
.
Я вижу, например, файл /home/user/Programs/bin/g++
/home/user/Programs/bin/g++ --version
g++ (GCC) 5.5.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Я столкнулся с проблемой при создании root.
Я сталкиваюсь с ошибкой
make CC=/home/user/Programs/bin/gcc CXX=/home/user/Programs/bin/g++
g++ -shared -Wl,-soname,libminicern.so -m64 -O2 -Wl,--no-undefined -Wl,--as-needed -o lib/libminicern.so misc/minicern/src/cernlib.o -ldl misc/minicern/src/kernlib.o misc/minicern/src/zebra.o misc/minicern/src/hbook.o /usr/lib/gcc/x86_64-linux-gnu/6/libgfortran.so libgfortranbegin.a
g++: error: libgfortranbegin.a: No such file or directory
/home/ecb/directory/root/misc/minicern/Module.mk:48: recipe for target 'lib/libminicern.so' failed
Как видите, я указал make для использования компиляторов gcc-5 C и C ++.
Я обнаружил 2 версии libgfortranbegin.a
в моей системе. Один в /usr/lib/gcc/x86_64-linux-gnu/6
, а другой в ~/Programs/lib/gcc/x86_64-unknown-linux-gnu/5.5.0
.
Я подумал, что это немного странно, что путь был "unknown-linux", поэтому я сделал символическую ссылку ~/Programs/lib/gcc/x86_64-linux-gnu/5.5.0
- однако это не решило проблему.
Я пытался найти информацию об этом, но я нашел только один хит
https://root -forum.cern.ch / т / косяк-найти-libgfortranbegin-а-когда-установка корень-6-06-04 / 21222
Я не думаю, что это особенно актуально - не только другая (основная) версия программного обеспечения, с другой (основной) версией компилятора, но, кроме того, у этого человека были проблемы с make install
I не может даже пройти make
.
Одна вещь, о которой я упомянул, это то, что при сборке gcc-5 у меня не было , которое, как предполагалось, указывало опцию для изменения места размещения общих C и C ++ и библиотек. Я не до конца понимаю, к чему это приведет ... Размещены ли в директориях gcc-5 include
и lib...
относительно --prefix=/home/user/Programs
?
Если я загляну внутрь /home/user/Programs
У меня есть каталоги, такие как bin
, lib
, lib32
, lib64
include
- так что это говорит о том, что ответ на поставленный выше вопрос "Да", и поэтому это не является причиной проблемы.
У меня больше нет идей, как поступить с этим. Я знаю, где находится libgfortranbegin.a
- установлено как минимум 2 версии, одна для общесистемной системы по умолчанию, одна для gcc6 и одна для локальной установки gcc-5.
Нужно ли указать make или настроить, где найти libgfortranbegin.a
? Если да, то как мне это сделать?