Как 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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