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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.