LINUX.ORG.RU

cannot find -lgcc_s


0

1

Хочу модифицировать одну утилиту(statserial)
Скачал исходник. Распаковал. Проверяю:

niconix@niconix-Asus:~/statserial-1.1.orig$ make
gcc -Wall -O3 -fomit-frame-pointer -c statserial.c
gcc -s -N -o statserial statserial.o -lcurses
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: выполнение ld завершилось с кодом возврата 1
make: *** [statserial] Ошибка 1
Подскажите где искать этот -lgcc_s?


Ответ на: комментарий от nickionn
niconix@niconix-Asus:~/statserial-1.1.orig$ sudo apt-get install libgcc_s
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
E: Не удалось найти пакет libgcc_s
Isaak
() автор топика

strace gcc -s -N -o statserial statserial.o -lcurses

попробуй посмотреть, какие файлы читает gcc точнее ld и где он ожидает их найти

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555
niconix@niconix-Asus:~/statserial-1.1.orig$ strace gcc -s -N -o statserial statserial.o -lcurses
execve("/usr/bin/gcc", ["gcc", "-s", "-N", "-o", "statserial", "statserial.o", "-lcurses"], [/* 38 vars */]) = 0
////////////////////////////////////////////////////////////////
access("/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crtn.o", R_OK) = 0
stat64("/usr/lib/gcc/i686-linux-gnu/4.6/collect2", {st_mode=S_IFREG|0755, st_size=124628, ...}) = 0
access("/usr/lib/gcc/i686-linux-gnu/4.6/collect2", X_OK) = 0
vfork()                                 = 6128
waitpid(6128, /usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: выполнение ld завершилось с кодом возврата 1
[{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0) = 6128
--- SIGCHLD (Child exited) @ 0 (0) ---
exit_group(1)                           = ?

niconix@niconix-Asus:~/statserial-1.1.orig$ locate libgcc_s
/lib/i386-linux-gnu/libgcc_s.so.1
/usr/lib/gcc/i686-linux-gnu/4.6/libgcc_s.so
Isaak
() автор топика
Ответ на: комментарий от Isaak

Может надо поставить build-essentials? Не знаю, как там в этих ваших убунтах...

buddhist ★★★★★
()
Ответ на: комментарий от dimon555

Полный вывод выкладывать небуду. Кажется это здесь

[pid  6271] _llseek(11, 122880, [122880], SEEK_SET) = 0
[pid  6271] _llseek(11, 122880, [122880], SEEK_SET) = 0
[pid  6271] stat64("/usr/lib/gcc/i686-linux-gnu/4.6/libgcc_s.a", 0xbfa7bd70) = -1 ENOENT (No such file or directory)
[pid  6271] open("/usr/lib/gcc/i686-linux-gnu/4.6/libgcc_s.a", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
[pid  6271] stat64("/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libgcc_s.a", 0xbfa7bd70) = -1 ENOENT (No such file or directory)
[pid  6271] open("/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libgcc_s.a", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
[pid  6271] stat64("/usr/lib/gcc/i686-linux-gnu/4.6/../../../../lib/libgcc_s.a", 0xbfa7bd70) = -1 ENOENT (No such file or directory)
[pid  6271] open("/usr/lib/gcc/i686-linux-gnu/4.6/../../../../lib/libgcc_s.a", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
[pid  6271] stat64("/lib/i386-linux-gnu/libgcc_s.a", 0xbfa7bd70) = -1 ENOENT (No such file or directory)
[pid  6271] open("/lib/i386-linux-gnu/libgcc_s.a", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
[pid  6271] stat64("/lib/../lib/libgcc_s.a", 0xbfa7bd70) = -1 ENOENT (No such file or directory)
Он ищет .a, а есть только .so

Isaak
() автор топика
Ответ на: комментарий от Isaak

видимо libgcc_s.a нету, а он пытается линковать статически, опция -s попробуй её убрать к примеру.

dimon555 ★★★★★
()
Ответ на: комментарий от Isaak

glibc-devel-static, но в убунте этот пакет называется иначе. Но всё равно что-то с glibc и static.

quiet_readonly ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.