укажите каталог включения только для определенных исходных файлов с помощью gcc

#gcc #include

#gcc #включить

Вопрос:

Мне интересно, можно ли указать каталоги включения в gcc таким образом, чтобы только определенные исходные файлы проверяли этот каталог. Я имею в виду, что мне нужна такая командная строка:

 gcc -I[File1 Include Dir] [File1].c -I[File2 Include Dir] [File2].c
  

таким образом, чтобы #includes в [File2].c НЕ выполнял поиск [File1 включает каталог], а только [File2 включает каталог].

[File1 Include Dir] и [File2 Include Dir] будут содержать файлы и каталоги с одинаковыми именами, поэтому важно, чтобы [File2] не начинал поиск файлов в [File1 Include Dir], потому что он найдет файл с именем, которое он искал, но это будет тот же каталог.неправильный файл.

Ограничения заключаются в том, что я не могу изменить код в исходных файлах, чтобы использовать абсолютные пути, и я должен получить желаемое поведение только в одной командной строке. Кроме того, я не могу просто дать две команды в одной строке с чем-то вроде amp;amp; . Что действительно происходит, так это то, что я должен собрать все аргументы для передачи скрипту, который вызывает gcc; Я не могу вызвать gcc самостоятельно.

Возможен ли такой сценарий?

Комментарии:

1. Почему вы вынуждены использовать этот сценарий? Было бы намного проще просто использовать два вызова gcc.

2. Я знаю, но для целей этого вопроса таковы мои ограничения. Если описанный сценарий невозможен, то «сценарий», который принимает аргументы, должен быть изменен, чтобы снять ограничение.

3. Весь вопрос предъявляет к вам абсурдные требования. Без четкой мотивации для реального решения проблем (а не только искусственных ограничений, налагаемых профессором-садистом или TA), правильный ответ: «это не разумный способ попытаться выполнить компиляции».

4. Согласен. Но мотивация заключается в том, что если такое возможно, существующую систему сборки изменять не нужно. Поэтому я действительно просто хочу посмотреть, возможно ли вышеуказанное или нет. Если это не так, все в порядке. Просто хотел посмотреть, может ли кто-нибудь подтвердить это. Отсутствие ответов может быть моим ответом.