Действительно ли возможно указать дополнительные заголовочные файлы для включения из командной строки (использующий GCC 4 / C++)?
Или есть ли какой-либо другой способ, кроме которого могут быть включены файлы с #include?
Фон: я пытаюсь скомпилировать большую кодовую базу на своем собственном ПК. Код обычно компилируется в кластере со сложной системой сборки (SoftRelTools кто-либо?), который переплетен с операционной системой, такой, что фактически невозможно установить его где-то в другом месте (буквально сотни make-файлов и сценариев оболочки и трудно кодированных путей к сетевым дискам). Однако фактический код довольно прост, и компилирует прекрасный, НО он отсутствует, много из включает (главным образом а-ля"include <vector>
"и"include <math.h>
"). Я предполагаю, что система сборки обычно заботится об этом, но я должен пройти код и добавить включение вручную, которого я избежал бы.
Я нашел параметр -include. Это то, что вы хотите?
-include file
Обрабатывать файл, как если бы "#include" file "" появилось в первой строке первичный исходный файл. Тем не менее первый каталог, в котором выполняется поиск файла, рабочий каталог препроцессора вместо каталога, содержащего основной исходный файл. Если не найден там он ищется в остаток от "#include" ... "" поисковая цепочка в обычном режиме.
Если указано несколько параметров -include, файлы включаются в порядок их появления в командной строке.
Согласно документации gcc, параметр командной строки «-include file» выполняет эту работу.
Из руководства gcc:
-include file
Обрабатывать файл, как если бы "
#include" file "
" отображалось как первая строка первичный исходный файл. Однако первый каталог, в котором выполняется поиск файла, - это рабочий каталог препроцессора, а не каталог, содержащий основной исходный файл. Если он там не найден, он ищется в оставшейся части поисковой цепочки "#include" ...
"как обычно.Если указано несколько параметров -include, файлы включаются в том порядке, в котором они появляются в командной строке.