Я пытаюсь скомпилировать программу с g77 и получаю следующую ошибку:
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
Я видел на другом форуме, что это связано с libgcc, при поиске libgcc я получаю
>find /usr/ -name libgcc*
/usr/share/doc/libgcc1
/usr/share/lintian/overrides/libgcc1
/usr/lib/libgccpp.so.1.0.3
/usr/lib/libgccpp.so.1
/usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_eh.a
/usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc.a
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_s_32.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_eh.a
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc_s_32.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc_eh.a
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc.a
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc.a
/usr/lib/ure/lib/libgcc3_uno.so
Это связано с тем, что хотя libgcc присутствует, он может отсутствовать в путях, известных ldconfig . Проверьте это, выполнив:
sudo /sbin/ldconfig -p | grep libgcc
Вывод показывает, что ссылка на libgcc соответствует путям, которые вы перечислили выше?
Обходным решением для вас может быть добавление ссылки к соответствующая библиотека для вашей команды компиляции например
g++ program.cpp -L /usr/lib/gcc/x86_64-linux-gnu/4.6/
Другим решением может быть создание символической ссылки на библиотеку самостоятельно.
ln -s /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_s.so /usr/lib/gcc/libgcc_s.so
https://blog.andrewbeacock.com/2007/10/how-to-add-shared-libraries-to-linuxs.html
Создайте новый файл в /etc/ld.so.conf.d/
с именем .conf
Отредактируйте файл и добавьте строку для каждого каталога общих библиотек (файлы *.so
). выглядеть примерно так:
/usr/lib/APPLICATION/lib
Обновить список путей к общесистемным библиотекам:
sudo ldconfig