파일이 작동하지 않게 만들기 c

파일이 작동하지 않게 만들기 c
A4: main.o testA4.o helper.o miscFunctions.o queueFunctions.o headerA4.h
    gcc -Wall -std=c99 main.o testA4.o helper.o miscFunctions.o queueFunctions.o

main.o: main.c headerA4.h
    gcc -Wall -std=c99 -c main.c -o main.o

testA4.o: testA4.c headerA4.h
    gcc -Wall -std=c99 -c testA4.c -o testA4.o

helper.o: helper.c headerA4.h
    gcc -Wall -std=c99 -c helper.c -o helper.o

miscFunctions.o: miscFunctions.c headerA4.h
    gcc -Wall -std=c99 -c miscFunctions.c -o miscFunctions.o

queueFunctions.o: queueFunctions.c headerA4.h
    gcc -Wall -std=c99 -c queueFunctions.c -o queueFunctions.o

clean:
    rm *.o

이것은 내 make 파일이지만, 컴파일하면 이런 일이 발생합니다.

zali05@ginny:~/A4$ make
gcc -Wall -std=c99 main.o testA4.o helper.o miscFunctions.o queueFunctions.o
zali05@ginny:~/A4$ A4
bash: A4: command not found
zali05@ginny:~/A4$ A4:
bash: A4:: command not found
zali05@ginny:~/A4$ ./A4
bash: ./A4: No such file or directory
zali05@ginny:~/A4$ ./a.out
Begining A4 Program Testing...
Creating Initial List...
Enter a username:

그것은 적용됩니다./a.out

답변1

link/load 명령에 이 옵션이 없습니다 -o A4. 이것을 로 작성할 수도 있습니다 -o $@. 마찬가지로 명령에서 객체 목록을 로 작성할 수 있습니다 $^.GNU가 만든다종속성 목록을 복사합니다. (아아, 모든 브랜드가 그런 것은 아닙니다.이 기능.)

Make는 컴파일 모드도 제공합니다. CFLAGSand(선택 사항)를 설정 CC하고 모든 컴파일 명령을 생략할 수 있습니다.

또한 여기에 게시할 때 makefile의 첫 번째 줄 형식을 잘못 지정했습니다.

완전한 결과를 제공하기 위해 이 메이크파일을 작성하고(사용하지 않고)자동차 제조업체또는의존하다(하나를 사용합니다!) 그리고 대상은 GNU 특정 make가 아닙니다. 다음과 같이 작성할 수 있습니다.

A4_OBJS = main.o testA4.o helper.o miscFunctions.o queueFunctions.o 

CC = gcc
CFLAGS = -Wall -std=c99

A4 : ${A4_OBJS}
        ${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${A4_OBJS}

main.o : main.c headerA4.h
testA4.o : testA4.c headerA4.h
helper.o : helper.c headerA4.h
miscFunctions.o : miscFunctions.c headerA4.h
queueFunctions.o : queueFunctions.c headerA4.h

clean :
        rm *.o A4

관련 정보