Подтвердить что ты не робот

Не может найти -lc и -lm в g++ linux

Я использую ubuntu, а gcc и g++ работают нормально, но сегодня он показал:

cannot find -lm
cannot find -lc

Я искал и нашел, что это как-то связано с /usr/bin/ld. который является символической ссылкой (я надеюсь) на lbd.bdf. Я вставил этот файл в каталог из ubuntu некоторых друзей pc. Это не сработало.

Я обнаружил, что -lc означает включение статической библиотеки libc.a.
аналогично для -lm

Я нашел их в своем i386-linux-folders (имя было чем-то другим).

Я пробовал блоки кода, но те же ошибки.

4b9b3361

Ответ 1

убедитесь, что ваш libpath (в g++) указывает на каталог (ы), в котором находятся libm.a и libc.a(используйте параметр -L)

Ответ 2

компилятор не может найти статический glibc, возможно, вы установили только общие библиотеки
попробуйте

yum install glibc-static

Ответ 3

ld является компоновщиком GNU.

man ld     ld объединяет ряд объектных и архивных файлов, переносит их данные и связывает ссылки на символы. Обычно последний шаг при компиляции программы - запустить ld.

Он используется для связи вашей программы с библиотекой C и математической библиотекой C. Вы должны убедиться, что установлен libc6-dev:

[email protected]: $ dpkg -s libc6-dev

Или более общий, убедитесь, что build-essential, который зависит от нескольких важных C-пакетов.

[email protected]: $ dpkg -s build-essential