Заголовок имя файла в качестве аргумента

Цель: у меня есть список заголовочных файлов (около 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: во время компиляции укажите путь с соответствующими заголовками

Решение не то, что я хотел, но все же, это было лучшее, что я мог придумать.

Другие вопросы по тегам