Включить заголовочные файлы, используя параметр командной строки? - PullRequest
65 голосов
/ 02 августа 2010

Можно ли указать дополнительные файлы заголовков для включения из командной строки (используя GCC 4 / C ++)?

Или есть ли другие способы включения файлов, кроме #include?

Справочная информация: я пытаюсь скомпилировать большую базу кода на моем собственном ПК.Код обычно компилируется в кластере со сложной системой сборки (SoftRelTools кто-нибудь?), Которая переплетена с операционной системой, так что практически невозможно установить ее где-то еще (буквально сотни make-файлов и сценариев оболочки изакодированные пути к сетевым дискам).Тем не менее, реальный код довольно прост и прекрасно компилируется, НО в нем пропущено много включений (в основном, как "include <vector>" и "include <math.h>").Я предполагаю, что система сборки обычно об этом заботится, но мне нужно пройти через код и добавить включения вручную, чего я бы предпочел избежать.

Ответы [ 3 ]

73 голосов
/ 02 августа 2010

I найдено опция -include.Делает ли это то, что вам нужно?

-include file

Обрабатывать файл так, как если бы "#include" file "" отображалось в первой строке первичного исходного файла.Однако первым каталогом, в котором выполняется поиск файла, является рабочий каталог препроцессора, а не каталог, содержащий основной исходный файл.Если он там не найден, его ищут в оставшейся части цепочки поиска "#include" ... "" как обычно.

Если заданы несколько опций -include, файлы включаются в порядке ихпоявляются в командной строке.

25 голосов
/ 02 августа 2010

Из руководства по gcc:

-включить файл

Обрабатывать файл, как если бы «#include "file"» отображался в первой строке первичного исходного файла. Однако первым каталогом, в котором выполняется поиск файла, является рабочий каталог препроцессора, а не каталог, содержащий основной исходный файл. Если он там не найден, его ищут в оставшейся части цепочки поиска "#include "..."" как обычно.

Если задано несколько опций -include, файлы включаются в порядке их появления в командной строке.

9 голосов
/ 02 августа 2010

Согласно документации gcc, переключатель командной строки "-include file" сделает эту работу.

...