我正在编写一个 Makefile 来运行我的 C 程序。
这是我在 Makefile 中的代码
all: perimeter.o main.c
gcc -o program main.c perimeter.o
perimeter.o: perimeter.c perimeter.h
gcc -c perimeter.c
clean:
find ./ -executable -delete
test: tests
tests: test.o
gcc -o tests test.o
test.o: ./tests/test.c
gcc -c ./tests/test.c -I..
但是找不到头文件
然后我尝试了...
test.o: ./tests/test.c perimeter.h
gcc -c ./tests/test.c -I..
和
test.o: ./tests/test.c perimeter.h
gcc -c ./tests/test.c -I ../
和
test.o: ./tests/test.c perimeter.h
gcc -c ./tests/test.c
全部失败
所以我认为
-I..
不起作用。(我也尝试过-I ../
)
如何解决这个问题?
脚本期望 CWD 是包含
Makefile
的目录(因为它使用 ./tests/test.c
),因此 perimiter.h
在 CWD 中,所以
gcc -c ./tests/test.c -I..
应该是
gcc -c ./tests/test.c -I.