Как gcc -MMD записывает файлы .d?C++

Программы на C++. Форум разработчиков
Anonymous
Как gcc -MMD записывает файлы .d?

Сообщение Anonymous »

Как gcc решает, какие файлы должны быть указаны как зависимости от создаваемого объектного файла, когда он записывает файл .d?

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

Код: Выделить всё

g++ --MMD --sysroot=absolute_path_to_sysroot -c -o file.o -MF file.d file.cpp
g++ --MMD --sysroot=relative_path_to_sysroot -c -o file.o -MF file.d file.cpp
Я наблюдаю странный случай:
Если путь компилятора и --sysroot являются абсолютными, то два дополнительных файла заголовка отображаются как зависимости в файле .d.

Если --sysroot является относительным, то два дополнительных файла заголовков больше не отображаются в качестве зависимостей в файле .d.

Это заставило меня задуматься, что является ли критерий, отличный от #included заголовка, на основании которого файлы .d фактически записываются компилятором, и как sysroot повлияет на это?

Подробнее здесь: https://stackoverflow.com/questions/231 ... te-d-files

Вернуться в «C++»