0
Я получаю сообщение об ошибке pythagorean.so: undefined symbol: cos
. Я компилирую с math.h
, stdlib.h
и stdio.h
библиотеками и переключателем -lm
. Здесь находится фрагмент кода:C ошибка компоновщика с gcc и math.h
static bool
law_of_cosine_run(esh_command* cmd)
{
if (strcmp(cmd->argv[0], "lawofcosine") == 0) {
printf("The length of the third side is: %f\n",
law_of_cosine(strtol(cmd->argv[1], NULL, 10),
strtol(cmd->argv[2], NULL, 10), strtol(cmd->argv[3], NULL, 10)));
return true;
}
return false;
}
static double
law_of_cosine(double x, double y, double z)
{
return sqrt((x * x) + (y * y) - (2 * x * y * cos(z)));
}
Кто-нибудь знает, почему это произошло? pythagorean.c - это мой .c файл.
Благодаря
ли вы положили '-lm' до или после того, как все источника и объектные файлы? Это должно быть после. – zwol