Ошибка компоновщика C с gcc и math.h

Я получаю сообщение об ошибке pythagorean.so: undefined symbol: cos, Я собираю с math.h, stdlib.h, а также stdio.h библиотеки и -lm переключатель. Вот фрагмент кода:

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

Спасибо

1 ответ

Когда вы компилируете его, убедитесь, что вы набрали

gcc *.c -lm
Другие вопросы по тегам