`не могу найти"-lgcc_s"из gcc-3.4 в Ubuntu 11.04
Я пытаюсь использовать gcc-3.4
на последней Ubuntu. Пакет из снимков Debian.
Вероятно, он предполагает другую структуру каталогов по умолчанию, поэтому, например, я был вынужден дать его -I /usr/include/i386-linux-gnu/
, который gcc-4
предполагается неявно.
В настоящее время он компилирует все, что я дал, просто отлично, но не может связать. Даже самый простой исполняемый файл приводит к ошибке:
$ gcc-3.4 ~/tmp.cc -o ~/tmp
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
3 ответа
Видимо нужно добавить библиотеку /lib/i386-linux-gnu/libgcc_s.so.1
и компилятор ожидает мягкую ссылку /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so
однако, указав его в правильном месте:
$ ls -l /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so
lrwxrwxrwx 1 root root 18 2011-05-03 04:55 /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so -> /lib/libgcc_s.so.1
А также
$ ls /lib/libgcc_s.so.1
ls: /lib/libgcc_s.so.1: No such file or directory
Исправьте символическую ссылку, и все будет хорошо
$ sudo ln /lib/i386-linux-gnu/libgcc_s.so.1 /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so
Теперь это работает правильно!
$ g++-3.4 ~/tmp.cc -o ~/tmp
$
У меня была похожая проблема, но в моем случае я пытался установить gcc 4.2 (для компиляции в Matlab Simulink) в Ubuntu 11.04
В моем случае я написал:
sudo ln /lib/x86_64-linux-gnu/libgcc_s.so.1 /usr/lib/gcc/x86_64-linux-gnu/4.2.3/libgcc_s.so
И теперь gcc-4.2 компилируется.
Для меня команда:
sudo ln /lib/i386-linux-gnu/libgcc_s.so.1 /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so
не решает проблему.
Эта команда, вместо этого, решает ее:
sudo cp /lib/i386-linux-gnu/libgcc_s.so.1 /lib/libgcc_s.so.1