/tmp/cczg8SG0.o: In function `main':
sampl.c:(.text+0x3e): undefined reference to `pow'
collect2: выполнение ld завершилось с кодом возврата 1
Казалось функция pow() описана в math.h, так же пробовал функцию sqrt()
Последние четыре инсклюда уже на всякий случай от незнания после появления ошибки...
Что инклюдить надо?
Система -- это совокупность элементов и связей, дающая новые свойства, не присущие ни одному из элементов и ни одной из связей.
Компилятору все понятно. Из заголовочного файла math.h ему понятно, каковы функции pow () и sqrt (), какие параметры они принимают, какие значения возвращают.
Но сама эта функция находится не в библиотеке libc, линкуемой по умолчанию, а в библиотеке libm. Поэтому на стадии линковки необходимо явно указать на использование этой библиотеки.
Можно, например, сначала скомпилировать объектный файл, видно, что компилятору все понятно:
gcc -c sampl.c
Но на этапе линковки нужно указать библиотеку:
gcc -lm sampl.o