Параметры -S -save-temps
хорошо работайте, пока я не использую их на файлах с тем же именем.
Думайте о следующей ситуации: у Меня есть проект с основным каталогом и подкаталог с именем subDir
и в обоих из каталогов файлы, помещенные с именем file.c
. Если я теперь звоню gcc -S -save-temps file.cpp subDir/file.c
только один промежуточный файл с именем file.i
будет сгенерирован.
Это - ожидаемое поведение как файл человека gcc
говорит мне, что промежуточные файлы будут всегда помещаться в текущий путь при использовании -save-temps
.
Моя проблема, что я работаю над проектами, которые я не знаю заранее. Это могло очень хорошо быть, что кто-то создал вышеупомянутый пример в его Make-файлах. В этом случае я застрял бы, потому что мне нужны оба промежуточных файла.
Несколько слов к системе я создаю (для лучшего понимания): Мое использование инструмента make --just-print
для сбора вызовов make-файл проекта вызывает. Я сканирую эти призывы к вызовам компилятора и добавляю -save-temps
и -S
опции. Цель состоит в том, чтобы получить каждый предварительно обработанный файл, который используется в процессе компиляции проекта.
У Вас есть какие-либо идеи, как я в состоянии получить каждый предварительно обработанный файл, даже если вышеупомянутый пример должен появиться?
Это отличная разметка. Хорошее семантическое использование всех элементов. И красивое использование комментариев. (Да, я видел, что на это уже ответили и проголосовали правильно, но я новый и ищу некоторые точки, если бы я был здесь первым, wammo!)
-121--1010843- Им не требуется для явной записи реализует Set < E >
. Они сделали это для удобочитаемости.
Нет проблем с file.cpp/file.c в разных каталогах. GCC создает * .ii
и * .i
в зависимости от расширения файлов.
Если они оба имеют c | | cpp, можно использовать -E
и получить только один * .i
, где можно найти pragma # 1 «< FILE _ PATH >»
и извлечь его с помощью сценария.