Я пытаюсь узнать достаточно c, чтобы удовлетворить мою случайную потребность в написании простых программ, которые отвечают на конкретные вопросы, которые у меня есть. Я слежу за учебником и использую Geany для удобства использования. Вместо этого я не могу заставить простую программу работать. Вот мой исходный код:linker reports undefined reference, но код компилируется OK
#include <stdio.h>
#include <math.h>
int main(int argc, char **argv)
{
int x, y;
double c, sqr_c;
for (x = 10; x <= 31; x++)
{
for (y = 10; y <= 31; y++)
{
c = 1000 * x * x + y * y;
sqr_c = sqrt(c);
printf ("%f\n", sqr_c);
}
}
return 0;
}
Он отлично компилируется (НКУ -с), но когда я пытаюсь построить исполняемый файл, я получаю:
gcc "concsqr.c" -Wall -o "concsqr" (in directory: /home/chip)
/tmp/cccSmdZS.o: In function `main':
concsqr.c:(.text+0x4b): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status
Compilation failed.
Я читал кое-что о том, чтобы убедиться, что компоновщик может найти библиотека, где определена sqrt(), но я не знаю, как это сделать, и не будет ли она в стандартном расположении? Почему линкер уже не знает, где он? Это стандартная библиотека для c.