Хочу скомпилировать и слинковать код утилитой make. Но в терминал переносится деформированный код
Вот что внутри файла 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);
