나는 메이크 파일의 기능을 테스트하기 위해 간단한 코드 * make_test *를 작성했다. 폴더 구조는 다음과 같다 :Makefile에 의한 자동 동작
# include <stdio.h>
# include <include/maths.h>
int main(int argc, char** argv)
{
float a=1;
float b=4;
printf("%f + %f = %f\n", a, b, add(a, b));
return 0;
}
메이크 :
폴더가 maths.h
float add(float a, float b) { return a+b; }
주 파일은 다음 코드가 포함이 포함되어 포함 다음을 포함합니다 :
있다는 것을 테스트/%. 의도적으로 테스트를 위해 삽입 된 C 문는IDIR = -I. DEPS = ./include/maths.h CC= gcc -Wall -g $(IDIR) program: make_test.o %.o: test/%.c $(DEPS) @echo "Rule 1 was called" $(CC) -o [email protected] $< %.o: test/%.c $(DEPS) @echo "Rule 2 was called" $(CC) -o [email protected] $< %.o: test/%.c $(DEPS) @echo "Rule 3 was called" $(CC) -o [email protected] $<
참고. 테스트 폴더가 없습니다. 나는 기본 파일의 변경을하고 내가 명령 줄에 만들 입력하면, 나는
gcc -Wall -g -I. -c -o make_test.o make_test.c
내 질문에 내가 왜이 출력에 나타나지 않습니다 어디 -c 플래그를 추가하지 않은 것입니다거야? 종속성이 없거나 (test/% .c) 또는 변경된 경우 (/ maths.h 포함) 종속성이 없어 "수행 할 작업이 없습니다"라는 출력이 없습니까?
감사합니다.