Использование MSBuild в VC ++ 2010 для пользовательской предварительной обработки файлов - PullRequest
1 голос
/ 10 мая 2011

Я пытаюсь вставить пользовательский препроцессор в канал сборки VC ++ 2010 после завершения работы обычного препроцессора, поэтому я решил, что способ сделать это - через MSBuild.

На данный момент я не смог узнать намного больше, поэтому мои вопросы:

  • Возможно ли это вообще?
  • Если так, на что мне нужно обратить внимание, чтобы начать.

1 Ответ

1 голос
/ 07 сентября 2011

Если вы говорите о препроцессоре c / c ++, то вам, вероятно, не повезло.AFAIK, препроцессор встроен в сам компилятор.Вы можете заставить компилятор вывести предварительно обработанный файл, а затем вы МОЖЕТЕ отправить его через компилятор во второй раз, чтобы получить окончательный результат.

В любом случае это может не сработать, поскольку создаваемый код, по крайней мере в предыдущих версиях cl.exe, кажется не на 100% правильным (пробелы слегка искажаются, что может привести к ошибкам).

Если вы хотите пойти по этому пути, вам нужно иметь MSBuild 'Target', которая запускается до цели 'ClCompile'.Эта новая цель должна была бы запустить программу 'cl.exe' со всеми настройками, с которыми обычно ее отправляет ClCompile, а также с опцией / P, которая будет "выполнять предварительную обработку в файл".Затем вам нужно запустить инструмент над обработанным файлом, а затем, наконец, передать эти новые файлы в ClCompile.

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

...