Подтвердить что ты не робот

Включить файлы заголовков с помощью командной строки?

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

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

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

4b9b3361

Ответ 1

I нашел параметр -include. Это то, что вы хотите?

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

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

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

Ответ 2

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

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

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

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

Ответ 3

В соответствии с документацией gcc ключ командной строки "-ключить файл" выполнит задание.