Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/55: Рейтинг темы: голосов - 55, средняя оценка - 4.80
 Аватар для Buckstabue
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
1

Undefined reference to pow() почему в университете gcc такое выдает, а дома нет?

11.09.2012, 20:13. Показов 10325. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В университете стоит линукс и при обращении к библиотекам из math.h линковщик выводит такую ошибку. Решается эта проблема передачей параметра -lm.
Но дома я проверял, и та же самая программа компилируется без передачи дополнительных опций линковщику. В чем может быть проблема? Вроде, math.h самый что ни на есть стандартный модуль и не должен требовать дополнительных библитек при сборке
И можно ли пересобрать библиотеки этого компилятора для статической сборки без обновления компилятора?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.09.2012, 20:13
Ответы с готовыми решениями:

при вызове функции pow() выдаёт ошибку: test.cpp:(.text+0x59b): undefined reference to `pow'
В чём дело? Добавлено через 1 минуту ps. Заголовок math.h подключен.

Не компилируется программа: Undefined reference to `pow'
При компиляции выводит ошибки, которые впервые вижу Сам код: //1. Разработать программу нахождения массива N последовательных значений...

Арифметические операции и ошибка Undefined reference to `pow'
# include <stdio.h> # include <math.h> int main(c) { int k; float x,y,s,r,t; printf(" Enter k, x , y :...

17
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
11.09.2012, 20:52 2
Цитата Сообщение от Buckstabue Посмотреть сообщение
Но дома я проверял, и та же самая программа компилируется без передачи дополнительных опций линковщику.
Что-то я сомневаюсь... pow живёт в libm, ясное дело надо с ней линковаться. Вы точно одинаково собираете в обоих местах?
0
 Аватар для Buckstabue
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
11.09.2012, 21:09  [ТС] 3
Да. Тупо вбиваю gcc ./main.c -o program
В универе выскакивает эта странная ошибка, а дома все норм. Может думаю компилятор старый, на версию не обращал внимание
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
11.09.2012, 21:30 4
Цитата Сообщение от Buckstabue Посмотреть сообщение
Да. Тупо вбиваю gcc ./main.c -o program
"./" указывает bash интерпретатору что файл исполняемый. Т.е. таким образом запускаются исполняемые файлы (ELF, scripts). Компилировать надо так
Code Скопировано
1
gcc file.c -o binary_file -some_option_1 - some_option_n
а выполнять так
Code Скопировано
1
./binary_file
Как компилятор реагирует на эту опечатку я не знаю, но очевидно что в более свежих версиях она опускается. Хотя это ооочень сомнительно.
0
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
11.09.2012, 21:38 5
Хм, действительно. Тем не менее, ошибка ничуть не странная, вполне естественно, что для использования математических функций может потребоваться линковка с математической библиотекой, и начинать без дела создавать статические сборки не нужно.

Добавлено через 1 минуту
Цитата Сообщение от alkagolik Посмотреть сообщение
Как компилятор реагирует на эту опечатку я не знаю, но очевидно что в более свежих версиях она опускается.
Ни и где там ошибка, в чём по-твоему принципиальная разница между file и ./file в данном случае?
0
 Аватар для Buckstabue
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
11.09.2012, 21:39  [ТС] 6
Точка, насколько я знаю, позволяет уточнить путь к файлу(относительный или абсолютный, и если точка перед папкой, то имеется в виду именно относительный путь)
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
11.09.2012, 22:09 7
Цитата Сообщение от NoMasters Посмотреть сообщение
Ни и где там ошибка, в чём по-твоему принципиальная разница между file и ./file в данном случае?
где ошибка? какая ошибка? "./" говорит искать файл в текущем каталоге. Компилятор разбирает путь и выполняет задачу. Ерунда, посыпаюсь пеплом.
0
11.09.2012, 22:13  [ТС] 8

Не по теме:

:p:jokingly::rofl::yahoo:
Простите за флуд, не удержался

0
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
11.09.2012, 22:16 9
Цитата Сообщение от alkagolik Посмотреть сообщение
"./" говорит искать файл в текущем каталоге.
Неужели? А gcc file.c в отличии от gcc ./file.c, будет искать этот самый .с где-то в районе северного Дубая?
0
 Аватар для Buckstabue
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
11.09.2012, 22:29  [ТС] 10
NoMasters, ну хотя бы может принять это имя файла как параметр, передаваемый программе
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.09.2012, 22:31 11
Цитата Сообщение от Buckstabue Посмотреть сообщение
Да. Тупо вбиваю gcc ./main.c -o program
В универе выскакивает эта странная ошибка, а дома все норм. Может думаю компилятор старый, на версию не обращал внимание
Покажи исходник, добавь к строке компиляции опцию -v и покажи выдачу. Ну и если вдруг помнишь, то скажи версию gcc в институте
0
 Аватар для Buckstabue
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
11.09.2012, 22:45  [ТС] 12
Evg, эх, следующая практика по информатике будет только в понедельник, но я считаю там банально все устаревшее. Надо будет попросить админа обновить хотя бы компилятор( у нас по 20 компов подключено к одному серверу ). Ос какая-то помню была от oracle(или даже Sun) с красным экраном входа, и гном там стоял наидревнейший, даже в первой моей убунту 8 было что-то получше в плане всяких настроек меню.
В принципе, там стоит параллельно лицензионная windows xp с лицензионным visual studio 2005 pro, но как-то не хочется к окошкам привыкать, а из доступных инструментариев под линукс есть только gcc + простейший текстовые редактор типа gedit
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
11.09.2012, 22:45 13

Не по теме:

Цитата Сообщение от NoMasters Посмотреть сообщение
Неужели? А gcc file.c в отличии от gcc ./file.c, будет искать этот самый .с где-то в районе северного Дубая?
Цитата Сообщение от alkagolik Посмотреть сообщение
Ерунда, посыпаюсь пеплом.
смейся и торжествуй :D


Buckstabue, а в институте часом не BSD?
0
11.09.2012, 22:47 14

Не по теме:

Цитата Сообщение от alkagolik Посмотреть сообщение
смейся и торжествуй
Я тот пост коряво распарсил, сори:)

0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
11.09.2012, 22:50 15
Цитата Сообщение от Buckstabue Посмотреть сообщение
Ос какая-то помню была от oracle(или даже Sun) с красным экраном входа, и гном там стоял наидревнейший, даже в первой моей убунту 8 было что-то получше в плане всяких настроек меню.
это наверняка ответ. Ибо на старых осях по умолчанию компонуются libc, а math лежит в libm, поэтому явное указание компоновщику опции -lm обязательно.
1
 Аватар для Buckstabue
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
11.09.2012, 23:02  [ТС] 16
alkagolik, ясно, хоть мне и кажется что линковщик и компилятор слабо связаны с ОС, но чую вы тут правы
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.09.2012, 23:05 17
Цитата Сообщение от Buckstabue Посмотреть сообщение
Ос какая-то помню была от oracle(или даже Sun)
В старых реализациях библиотек математические функции находятся в libc, а не в libm, дело могло быть в том числе и в этом

Добавлено через 1 минуту
Цитата Сообщение от Buckstabue Посмотреть сообщение
хоть мне и кажется что линковщик и компилятор слабо связаны с ОС
На самом деле связаны. На солярисе gcc хоть и есть, но по возможности старается копировать поведение родного sun'овского компилятора, а потому и настроен может быть не так, как под линуксом
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
11.09.2012, 23:06 18
Buckstabue, ну где старая ОС -> старый компилятор из коробки(ибо зачем обновлять? -traditional работает и ладно ). В общем да, старый компилятор, наверное. Если есть итерес, поставь старенький себе посмотри что получится.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.09.2012, 23:06
Помогаю со студенческими работами здесь

Ошибка undefined reference в Eclipse (Winodows,C++,MinGW,GCC)
При попытке скомпилировать проект с подключенной библиотекой liblm.a(сторонняя библиотека) выскакивает ошибка: ...

Выдает ошибку undefined reference to 'mytreeview::sg()'
Определил свой виджет но тут возникла ошибка с сигналом mytreeview.h #ifndef MYTREEVIEW_H #define MYTREEVIEW_H ...

При запуске выдает undefined reference to winMain@16
#include <stdio.h> #include <conio.h> #include <stdlib.h> int A; int x,i,j,n,m,h,c,k; int...

Компилятор выдает ошибку - undefined reference to `WinMain'
Здраствуйте! Помогите пожалуйста разобратся в моем франкенштейне =) База данных клиентов. Компилятор (Dev-C++) ругается. ...

Выдает ошибку [Linker error] undefined reference to `WinMain@16'
Собственно проблема в сабже - выдает gcc.exe "J:\Курсовая БД\Курсовая .c" -o "J:\Курсовая БД\Курсовая .exe" ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Осваиваем Kubernetes: Подробная шпаргалка
Mr. Docker 15.03.2025
Kubernetes — это открытая платформа для автоматизации развертывания, масштабирования и управления контейнеризированными приложениями. Он был создан для решения проблем, с которыми сталкиваются. . .
Лучшие PHP REST API фреймворки
Jason-Webb 15.03.2025
Современные PHP REST API фреймворки предлагают большой набор функциональности: от автоматической валидации данных и управления маршрутизацией до генерации документации и интеграции с различными. . .
Многопоточность в Java с Project Loom: виртуальные или обычные потоки
Javaican 15.03.2025
Многопоточность всегда была одноим из основных элементов в разработке современного программного обеспечения. Она позволяет приложениям обрабатывать несколько задач одновременно, что критично для. . .
Что нового в Swift 6 и особенности миграции
mobDevWorks 15.03.2025
Swift 6 — это новый крупный релиз языка программирования от Apple, анонсированный на WWDC 2024. Если вы следили за эволюцией Swift, то наверняка заметили, что многие значимые возможности, которые. . .
Вопросы на собеседовании по Android
mobDevWorks 14.03.2025
По данным статистики, Android занимает более 70% мирового рынка мобильных операционных систем, что делает платформу привлекательной как для начинающих разработчиков, так и для опытных профессионалов. . . .
Лучшие игровые движки для Python
py-thonny 14.03.2025
Python обеспечивает разработчиков игр мощными движками и фреймворками, которые позволяют воплотить практически любую идею — от простой аркады до визуального романа с разветвленным сюжетом. Главное. . .
Бессерверный JavaScript: Разработка масштабируемых API с AWS Lambda
run.dev 14.03.2025
Но что такое бессерверные вычисления на самом деле? По сути, это модель облачных вычислений, где разработчик фокусируется исключительно на создании бизнес-логики, не тратя время на настройку. . .
Безопасность кода в C++26: Менеджеры ресурсов и висячие ссылки
NullReferenced 14.03.2025
C++ всегда был языком, предоставляющим разработчикам большие возможности и гибкость, но вместе с тем требующим ответственности. Одной из самых коварных проблем даже для опытных программистов остаются. . .
smart-agent proper interface settings (2025)
jigi33 14.03.2025
Smart-agent proper interface settings (mart 2025). (see screenshots to look at "Etalon" ARM)
Продвинутые настройки JVM
Javaican 14.03.2025
Стандартные параметры запуска JVM хороши для повседневной разработки, но совершенно недостаточны для высоконагруженных систем. Представьте, что вы запускаете финансовую платформу, обрабатывающую. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер