GCC, похоже, путает файлы зависимостей C * .d с исходным кодом языка D - PullRequest
0 голосов
/ 05 ноября 2019

Когда я компилирую свой код, gcc, кажется, путает файлы .d в моих опциях gcc с источником языка программирования 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 файлы в * .dep в моем Makefile, но gcc также не распознает их, ...

Вот мое правило Makefile, вызывающее проблемы:one:

$(PATHB)Test%.$(TARGET_EXTENSION): $(PATHO)Test%.o $(PATHO)%.o $(PATHU)unity.o $(PATHD)Test%.d
    $(LINK) -o $@ $^

Зависимое правило Makefile для создания файлов .d работает нормально:

    $(DEPEND) $@ $<

, и я знаю, что мои файлы .d создаются. Моя единственная проблема, когда

...