Заголовок имя файла в качестве аргумента
Цель: у меня есть список заголовочных файлов (около 50 из них), и каждый заголовочный файл имеет несколько массивов с постоянными элементами. Мне нужно написать программу для подсчета элементов массива. И создайте некоторую другую форму вывода (которая будет использоваться группой оборудования).
Мое решение: я включил все 50 нечетных файлов и написал заявку. И тогда я сбросил все элементы массива в указанный формат.
Моя среда: Visual Studio V6, Windows XP
Моя проблема: каждый раз, когда появляется новый набор файлов заголовков, я теперь изменяю настройки проекта VC++, чтобы они указывали на новый набор файлов заголовков, а затем перестраиваю.
Мой вопрос:
Немного в здравом уме, хотя,
- Есть ли способ упомянуть заголовок из некоторых аргументов командной строки или что-то?
- Я просто хочу избежать повторной компиляции исходного кода каждый раз...
3 ответа
Стандарты C и C++ позволяют использовать макрос в:
#include SOME_MACRO_HERE
Расширенное значение SOME_MACRO_HERE
должен выглядеть правильно для #include
директивы.
Следовательно, в принципе, вы можете использовать MSVC эквивалент:
cc -DSOME_MACRO_HERE='<actualheader.h>' sourcefile.c
Или же:
cc -DSOME_MACRO_HERE='"actualheader.h"' sourcefile.c
Похоже, это даст вам ответ на ваш первый вопрос.
Я не уверен, что вы можете избежать перекомпиляции - вы можете (возможно) избежать редактирования.
Заголовки включаются во время компиляции, поэтому нет никаких средств для изменения / добавления заголовков во время выполнения.
Почему бы вам просто не написать короткий и простой Perl-скрипт, который будет анализировать заголовки и подсчитывать количество элементов массива?
На самом деле я пришел к решению, которое работает.
- Шаг 1: Имена заголовочных файлов будут предварительно определены
- Шаг 2: Заголовки (заданные) с разными значениями параметров будут помещены в разные папки
- Шаг 3: во время компиляции укажите путь с соответствующими заголовками
Решение не то, что я хотел, но все же, это было лучшее, что я мог придумать.