当我编译代码时,gcc似乎将我的gcc选项中的.d文件与D编程语言源混淆了,并抱怨找不到cc1d编译器。总之,当我运行“ make”时,我得到以下输出:
gcc -c -I. -IUnity/src/ -Isrc/ -Ilib/ -DTEST test/Testworker.c -o build/objs/Testworker.o
gcc -c -I. -IUnity/src/ -Isrc/ -Ilib/ -DTEST src/worker.c -o build/objs/worker.o
gcc -o build/Testworker.out build/objs/Testworker.o build/objs/worker.o Unity/src/unity.o build/depends/Testworker.d
gcc: error trying to exec 'cc1d': execvp: No such file or directory
Makefile:56: recipe for target 'build/Testworker.out' failed
make: *** [build/Testworker.out] Error 1
如何告诉gcc,我的意思是我的* .d文件是依赖项,而不是更多的源文件?
我尝试将我的中间* .d文件重命名为我的Makefile中的* .dep,但是gcc也无法识别这些文件...
引起问题的我的Makefile规则是这样的:
$(PATHB)Test%.$(TARGET_EXTENSION): $(PATHO)Test%.o $(PATHO)%.o $(PATHU)unity.o $(PATHD)Test%.d
$(LINK) -o $@ $^
用于生成.d文件的从属Makefile规则运行良好:
$(DEPEND) $@ $<
,而且我知道正在创建.d文件。我的问题是