Хочу скомпилировать и слинковать код утилитой make. Но в терминал переносится деформированный код

Вот что внутри файла makefile:makefile

В текстовом виде:

launch.o: launch.c launch.h thruster.h
    gcc -c launch.c
thruster.o: thruster.h thruster.c
    gcc -c thruster.c
launch: thruster.o launch.o 
    gcc -o thruster thruster.o launch.o 

Если я в терминале вызываю: make launch.o То всё нормально и он создаёт launch.o Так же если я после создания этих файлов прописываю вручную в терминале: gcc -o thruster thruster.o launch.o Он создаёт работающую программу.

Однако если я удаляю созданные *.o файлы и вместо этих действий прописываю просто:

make launch

То он выдаёт ошибку:

Как видите я нахожусь в нужной папке, и предыдущие команды хоть и работают, но переносятся не в том же виде что и в makefiles

На всякий случай прикрепляю коды из launch.c thruster.c и thruster.h:

launch.c

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "thruster.h"

int main()
{
    char msg[80];
    while(fgets(msg,79,stdin))
    {
        encrypt(msg);
        encrypt2(msg);
        printf("%s",msg);
    }
    return 0;
}

thruster.c

#include "thruster.h"

void encrypt(char *message)
{
    char c;
    while(*message)
    {
        *message=*message^31;
        message++;
    }
}

void encrypt2(char *message)
{
    char c;
    while(*message)
    {
        *message=*message^29;
        message++;
    }
}

thruster.h

void encrypt(char *message);
void encrypt2(char *message);


Ответы (0 шт):