Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: undefined reference to `pow'  (Прочитано 7392 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Loss

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
undefined reference to `pow'
« : 09 Ноября 2009, 01:00:38 »
Добрый день. Пишу значит программку в Эклипс Галилео на Си и неожиданно для себя столкнулся с проблемой в исользовании pow...
#include <math.h>
#include <stdio.h>
int main (void)
{
double x = 10, y = 1;
printf("%f\n", pow(x, y));

return 0;
}
выдает такой еррор...

Building target: Numeral_system
Invoking: GCC C Linker
gcc  -o"Numsys"  ./converting.o   
./converting.o: In function `main':
/home/username/workspace/Numsys/Debug/../converting.c:41: undefined reference to `pow'
collect2: ld returned 1 exit status
make: *** [Numsys] Ошибка 1

Кручу, верчу, вместо переменной  y пишу 1 или 2 - работает, но если написать переменную или число, большее 2х опять то же самое о_О Честно говоря в ступоре, не знаю, что и делать. Видимо трабл в gcc-4.4 или либах...? Т.к. в борланде работает эта функция на ура. есть мнения как лечить?
ОС - Kubuntu 9.10 Karmic Koala

p.s. это простенькая прога, вообще надо для более сложного "творения"...

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: undefined reference to `pow'
« Ответ #1 : 09 Ноября 2009, 01:45:11 »
LANG=C man pow гласит:

Цитировать
POW(3)                                                               Linux Programmer's Manual                                                              POW(3)

NAME
       pow, powf, powl - power functions

SYNOPSIS
       #include <math.h>

       double pow(double x, double y);
       float powf(float x, float y);
       long double powl(long double x, long double y);

       Link with -lm.

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       powf(), powl(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE; or cc -std=c99


посему:

gcc -lm -oNumsys converting.c

Оффлайн Loss

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: undefined reference to `pow'
« Ответ #2 : 09 Ноября 2009, 02:13:46 »
Хм, спасибо, но как это приделать к Эклипсу, а то через консоль не оч. удобно будет каждый раз...
« Последнее редактирование: 09 Ноября 2009, 02:18:50 от Loss »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: undefined reference to `pow'
« Ответ #3 : 09 Ноября 2009, 05:24:27 »
Поройся в настройках линковшика (linker, редактор связей) и припиши библиотеку m в список линкуемых

Оффлайн Loss

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: undefined reference to `pow'
« Ответ #4 : 10 Ноября 2009, 01:36:12 »
Спасибо, работает ;)

Оффлайн Loss

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: undefined reference to `pow'
« Ответ #5 : 22 Ноября 2009, 15:30:02 »
Еще вопросег по Эклипсу.. Чтобы не создавать новый топег, спрошу тут.
В дебаггере не отображаются глобальные переменные. В закладке Variables не активна кнопка Add Global Variables. короче говоря как заставить его их отображать?

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.