Вопрос или проблема
Следуя точно этому посту, я смог установить gcc 3.4 на чистую установку Ubuntu 14.04. Но, когда я пытаюсь скомпилировать программу, она выдает следующую ошибку:
/usr/bin/ld: не удается найти crt1.o: Нет такого файла или директории
/usr/bin/ld: не удается найти crti.o: Нет такого файла или директории
/usr/bin/ld: не удается найти -lgcc_s
collect2: ld вернул 1 статус выхода
Я посмотрел на этот ответ и установил build-essential
, но это не решило проблему. Ошибка остается прежней.
Также я установил зависимости для g++-3.4 перед его установкой:
sudo apt-get build-dep g++-3.4
ОБНОВЛЕНИЕ:
Попробовав gcc-3.4 -B/usr/lib/x86_64-linux-gnu hello.c
, я устранил первые две ошибки.
/usr/bin/ld: не удается найти -lgcc_s
collect2: ld вернул 1 статус выхода
ОБНОВЛЕНИЕ 2:
Я прочитал этот пост и попробовал его на своей системе, как указано ниже, но это не помогло:
gcc-3.4 -B /usr/lib/x86_64-linux-gnu -L /usr/lib/gcc/x86_64-linux-gnu/3.4.6/ hello.c
Попробуйте следующие шаги:
-
Выполните следующие команды:
LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH export LIBRARY_PATH
Это уберет необходимость явно указывать путь каждый раз, когда компилируется программа на C.
-
Установите следующие пакеты:
sudo apt-get install libc6-dev sudo apt-get install gcc-multilib
-
Создайте символическую ссылку:
sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
Ответ или решение
Чтобы решить проблему с компиляцией кода с использованием gcc 3.4 на Ubuntu 14.04, вам нужно выполнить несколько шагов. Давайте рассмотрим их подробно.
-
Настройка переменной окружения LIBRARY_PATH: Это поможет компилятору находить нужные библиотеки. Выполните следующую команду в терминале:
LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH export LIBRARY_PATH
Вы можете добавить эти строки в ваш файл
~/.bashrc
, чтобы они применялись автоматически при каждом запуске терминала. -
Установка необходимых пакетов: Убедитесь, что у вас установлены все необходимые библиотеки для работы с gcc 3.4:
sudo apt-get install libc6-dev sudo apt-get install gcc-multilib
Эти пакеты обеспечат наличие необходимых библиотек и заголовков для компиляции программ.
-
Создание символической ссылки: Возможно, вам потребуется создать символическую ссылку для правильного поиска библиотек. Выполните следующую команду:
sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
Это создаст символическую ссылку, которая поможет linker’у находить нужные файлы, такие как
crt1.o
и другие. -
Команда компиляции: Теперь вы можете попробовать снова скомпилировать ваше приложение, используя gcc 3.4. Если проблема с отсутствующими библиотеками продолжается, попробуйте явно указать пути к библиотекам, используя опции
-L
и-B
, как это было предложено в ваших обновлениях:gcc-3.4 -B /usr/lib/x86_64-linux-gnu -L /usr/lib/gcc/x86_64-linux-gnu/3.4.6/ hello.c
-
Проверка наличия файлов crt1.o и crti.o: Если ошибки продолжают возникать, проверьте, существуют ли файлы
crt1.o
иcrti.o
в указанных директориях:ls /usr/lib/x86_64-linux-gnu/crt*
Если они отсутствуют, это может означать, что вам нужно переустановить пакет, который их предоставляет (обычно это
libc6-dev
).
Следуйте этим шагам, и вы должны решить проблемы, связанные с компиляцией программ с использованием gcc 3.4 на Ubuntu 14.04. Если после выполнения всех указанных действий проблема не будет решена, прошу сообщить об этом с приведением новых сообщений об ошибках для более глубокого анализа.