1
모든 소스 파일 앞에 디렉토리 이름이 붙지 않도록 Makefile에서 vpath를 사용하려고합니다. 하지만 제대로 작동하지 않습니다. SRC 디렉토리가 제대로 포함되고Makefile vpath가 헤더 파일에 대해 작동하지 않습니다.
CC=gcc -Wall
vpath %.h include
vpath %.c src
all: main.c Event.o Macros.h
$(CC) $< Event.o -o test/a.out
Event.o: Event.c Event.h Macros.h
$(CC) -c $< -o [email protected]
:
다음은 메이크입니다. 즉 Event.c 파일은 gcc에서 찾을 수 있습니다. 그러나 Event.h와 매크로 모두 .h가 아닙니다. gcc에서 Event.c를 컴파일 할 때 두 파일을 찾을 수 없다는 오류가 나타납니다.
내 C 파일의 #include 지시문을 각각 한 번에 변경하려고했습니다.
#include "Event.h" /* doesnt work */
#include <Event.h> /* doesnt work */
#include "../include/Event.h" /* works */
이 문제를 해결해 주시겠습니까? 실제 Makefile이 이보다 크므로 모든 소스 파일 앞에 디렉토리 이름을 사용하지 않으려합니다.
(가) 프로젝트에 포함 기반으로 만든 GCC 해결 된 경로를 볼 수있는 방법이 있나요? '-M -MG'는 내가 원하는 것을 수행한다. 즉, 오류를 무시하지만 해결 된 경로는 보여주지 않는다. – Royi