`не могу найти"-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
Другие вопросы по тегам