Автоматически сгенерированный файл C ++ в Pre-build не включен в компиляцию - PullRequest
1 голос
/ 04 ноября 2010

У меня есть собственный анализатор, который генерирует файлы C ++ и добавляет их в проект.Я хотел бы вызвать этот парсер перед сборкой моего проекта и скомпилировать новые сгенерированные файлы в той же сборке.Я использую VS2010.Я пытался вызвать анализатор в PreBuild, сгенерированные файлы правильно добавлены в проект (я вижу их в IDE), но они не скомпилированы.Например, если проект не знает, что в нем есть новые файлы.

Ответы [ 3 ]

2 голосов
/ 04 ноября 2010

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

Однако один из способов обойти это - добавить пустой файл в проект и включить его в компиляцию. Пусть ваша фаза предварительной сборки перезаписывает этот файл, а фаза пост-сборки повторно инициализирует его до нуля. Это должно решить эту проблему.

0 голосов
/ 18 ноября 2010

Автоматически сгенерированные файлы не добавляются в проект автоматически и поэтому не компилируются.Вы видите их в IDE, потому что они лежат в той же папке (папках), что и файлы вашего проекта.

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

Вы можете попробовать это:

MyProject/
    MyWrapperFile.cpp <-- official project file

MyWrapperFile.cpp contents

#include "stdafx.h"
#include "_AutoGenFile1.cpp"
#include "_AutoGenFile2.cpp"
// etc.
0 голосов
/ 04 ноября 2010

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

Если ваши сгенерированные файлы создаются из какого-то другого файла, который вы редактируете, вы можете настроить пользовательский шаг компиляции на «входе»файлы для вашего генератора.Это помогает с перекомпоновкой файлов.

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