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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Не определена функция pow  (Прочитано 890 раз)

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

Оффлайн mkreine

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Не определена функция pow
« : 21 Июля 2014, 08:56:39 »
Такая вот функция
double square_circle_radius(double radius) {
  double radius_2 = pow(radius, 2.0);
  double result = M_PI*radius_2;
  return result;
}

Включенные файлы:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

Жалуется на то, что функция pow не определена. Действительно, в файле math.h её нет (поиском искал). Пробовал подключать <tgmath.h> - тоже без результата....

Как быть?

Пользователь решил продолжить мысль 21 Июля 2014, 09:00:24:
Да, компилировать с ключом -lm пробовал - не помогает. Вообще команда такая:
gcc -lm -Wall helloworld.c -o helloworld
« Последнее редактирование: 21 Июля 2014, 09:00:24 от mkreine »

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Re: Не определена функция pow
« Ответ #1 : 21 Июля 2014, 09:14:28 »
Функцию pow написать ручками.

Нужна ли она в вашем случае?

Оффлайн mkreine

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: Не определена функция pow
« Ответ #2 : 21 Июля 2014, 09:29:59 »
Ну а как я в степень возведу?

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: Не определена функция pow
« Ответ #3 : 21 Июля 2014, 09:41:28 »
Ну а как я в степень возведу?
С помощью функции exp.
Пётр.

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Re: Не определена функция pow
« Ответ #4 : 21 Июля 2014, 11:00:47 »
Я бы сделал по принципу KISS:

double square_circle_radius(double radius) { return radius*355.0/113.0*radius; }
Шаманство  :) но работает!

Оффлайн mkreine

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: Не определена функция pow
« Ответ #5 : 21 Июля 2014, 12:21:45 »
Дабы не плодить новых тем скажу, что то же самое с функцией cos и sqrt. Непонятно почему полностью игнорится math.h. Собираю проект make-файлом, вот его код:

CC=gcc
CFLAGS=-std=c99 -lm -Wall

all:
$(CC) $(CFLAGS) helloworld.c triangle.c circle.c -o helloworld

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5583
  • Все по палатам!
    • Просмотр профиля
Re: Не определена функция pow
« Ответ #6 : 21 Июля 2014, 12:31:30 »
mkreine, M_PI*r*r работает быстрее и не зависит от сторонней реализации
Извините, я все еще учусь

Оффлайн mkreine

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: Не определена функция pow
« Ответ #7 : 21 Июля 2014, 12:45:00 »
SergeyIT,
Спасибо, но вопрос по остальным математическим функциям у меня всё же остаётся.

Пользователь решил продолжить мысль [time]21 Июль 2014, 12:56:31[/time]:
Добавлю ещё:

root@home-server:/home/mkreine/c++# find / -name libm.so
/usr/lib/x86_64-linux-gnu/libm.so

Подозреваю что-то связанное со стандартом С99, однако не могу ничего доказать... )

Пользователь решил продолжить мысль 21 Июля 2014, 12:58:57:
о! решил проблему! надо было -lm в конце писать, после перечисления файлов, а я его в начале дубасил )) ну теперь буду знать )
« Последнее редактирование: 21 Июля 2014, 12:58:57 от mkreine »

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5583
  • Все по палатам!
    • Просмотр профиля
Re: Не определена функция pow
« Ответ #8 : 21 Июля 2014, 13:42:20 »
mkreine, на будущее, в консоли
man pow
man cos и т.д.

Извините, я все еще учусь

 

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