Как я могу скомпилировать автоматически сгенерированные файлы C в предварительной сборке? - PullRequest
6 голосов
/ 25 июля 2011

У меня есть проект Eclipse, который мне нужен для автоматической генерации некоторых файлов перед его компиляцией. Я не хочу помещать эти автоматически сгенерированные файлы в мой репозиторий, поэтому каждый раз, когда я компилирую проект, я выполняю предварительную сборку для автоматической генерации этих файлов.

Проблема в том, что эти автоматически сгенерированные файлы представляют собой файлы * .c и * .h, и при первой компиляции проекта происходит следующее (в указанном порядке):

  • pre-build: автоматически генерировать * .c и * .h
  • build: eclipse не будет создавать автоматически сгенерированные файлы

Если я снова скомпилирую, эти файлы будут скомпилированы. Возможно, это происходит из-за процесса обнаружения файлов, которые будут компилировать eclipse. Перед началом компиляции у нас нет этих автоматически сгенерированных файлов * .c и * .h.

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

Ответы [ 2 ]

5 голосов
/ 13 сентября 2012

Если вы хотите получить полный контроль над тем, когда именно выполняется этап пользовательской сборки, какие файлы необходимо обновить после него, окружение, рабочий каталог и т. Д., Не указывайте его как простой этап предварительной сборки.Перейдите в свойства проекта -> Builders -> New ... и выберите «Программа».

В появившемся диалоговом окне вы получаете гораздо больший контроль над выполнением вашего инструмента.Например, вы можете запустить инструмент при каждом сохранении XML-файла и указать eclipse обновлять все автоматически созданные файлы при каждом запуске.

0 голосов
/ 26 августа 2011

Если я правильно понимаю ваш вопрос, похоже, что сборка вашего проекта в первый раз автоматически сгенерирует необходимые исходные файлы * .c и * .h, но проект не удастся собрать полностью, потому что эти исходные файлы не найденынемедленно.После небольшой задержки Eclipse распознает, что в проект добавлены новые файлы, и вы можете создать его еще раз, и все будет нормально.Звучит ли это правильно?

Предполагая, что это так, я сразу же подумал о том, чтобы написать какой-нибудь скрипт или make-файл, чтобы все эти действия могли выполняться в правильном порядке с помощью одного действия.В зависимости от того, насколько грязно вы хотите заполучить руки, вот ссылка;)

http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.cdt.doc.user/concepts/cdt_c_makefile.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...