LINUX.ORG.RU

Компоновщик не понимает имена функций из math.h


0

0

Проблема такая: есть проект из нескольких Сишных модулей, требуется собрать исполняемый файл; компилируется все на ура, а вот компоновщик заявляет, что pow, sin, cos, log, др. мат. функции, а также в добавок errno ему неизвествны (undefined reference). В чем может быть проблема?

anonymous

Ответ на: комментарий от anonymous

Это не маразм, просто в большинстве программ ф-ции из этой библиотеки не нужны, ты ведь не спрашиваешь почему по умолчанию не подключена скажем libpthread?

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

а как глибс нахер отрубить? типа как в кернеле?

anonymous
()
Ответ на: комментарий от LONGOBARD

-lm попробую, а вот errno.h включен. Кстати, мат. библиотеки оформлена в отдельном *.a или *.so? Если да, то как называется?

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

>Если да, то как называется?

Ну здрасти. Тебе ж говорят, что нужен ключ -lm Значит библиотека - libm. (есть и .a, и .so)(locate libm.a; locate libm.so)

В общем случае, если у тебя есть библиотека librulez.so, то компилятору нужно указывать ключ -lrulez

То есть заместо lib ставим -l, а расширение .so убираем.

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

Действительно, ступил.

Все нормально собралось, спасибо.

errno.h и впрямь оказался не прописан (проект не мой, вначале не докопался).

Но я совершенно точно собирал свои программы, использующие math.h, и не требовалось там явно подключать libm. Тоже программы на Си, но из одного модуля. Почему же там не требовалось явно включать эту библиотеку?

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