ошибка вопроса программирования переменного тока при компиляции и выполнении - PullRequest
0 голосов
/ 31 января 2019

У меня ошибка при попытке скомпилировать и выполнить мой код.

Исходный код:

#include <stdio.h>
#include <math.h>
#define PI 3.14125365
#define MAX 180

main()
{
    int angle;
    float x,y;
    angle = 0;
    printf("Angle Cos(angle)\n");
    while(angle <= MAX)
    {
        x = (PI/MAX)*angle;
        y = cos(x);
        printf("%5d %3.4f\n", angle,y);
        angle = angle + 10;
    }
}

, когда я пытаюсь выполнить вышеуказанную программу, появляется следующая ошибка

./math_functions.c
./math_functions.c: line 11: syntax error near unexpected token `"Angle Cos(angle)\n"'
./math_functions.c: line 11: `printf("Angle Cos(angle)\n");'

Я также получаю предупреждающее сообщение и сообщение об ошибке после попытки компиляции, которое выглядит следующим образом

math_functions.c:6:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
 main()
 ^~~~
/tmp/ccOZSgOb.o: In function `main':
math_functions.c:(.text+0x3d): undefined reference to `cos'
collect2: error: ld returned 1 exit status

1 Ответ

0 голосов
/ 31 января 2019

В первом случае вы пытаетесь запустить исходный файл C как скрипт оболочки.Это не то, как вы запускаете программу на Си.Вы делаете это, сначала компилируя программу и запуская полученный исполняемый файл.

Причина, по которой вы получаете ошибку компиляции, заключается в том, что вы используете функцию cos, которая находится в математической библиотеке, которая не связанапо умолчанию.Вам нужно добавить -lm в конце вашей команды компиляции, чтобы связать эту библиотеку.

gcc -g -Wall -Wextra -o math_functions math_functions.c -lm

Кроме того, причина, по которой вы получаете предупреждение о возвращаемом типе по умолчанию int, заключается в том, чтоваша основная функция не имеет указанного типа возвращаемого значения.Поставьте int перед объявлением, и все будет в порядке, т.е.

int main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...