Как вывести предварительно обработанный код и скомпилировать его (Visual Studio) - PullRequest
7 голосов
/ 19 октября 2011

Я генерирую вывод препроцессора (.i) из Visual Studio, но также хочу сделать фактическую сборку. Существует ли комбинация флагов, которая будет одновременно выводить файл .i, не мешая компилятору продолжать сборку как обычно?

В настоящее время это всего лишь C ++, но, возможно, позже потребуется использовать его с CUDA, поэтому предпочитайте ответы, которые работают в Visual Studio, а не требуют командной строки (если только она не работает и для CUDA).

Смысл этого в том, чтобы сэкономить время, необходимое для выполнения Project-> Properties-> Config Props-> C / C ++ -> Preprocessor-> Generate Preprocessed File Yes / No плюс Rebuild. В частности, мне утомительно, что препроцессор должен запускаться дважды, поэтому было бы хорошо, если бы решение, которое каким-то образом генерирует файл .i в части 1, а затем компилирует этот файл в части 2.

Точная версия Visual Studio, которую я использую - VS 2008 Express

Ответы [ 3 ]

2 голосов
/ 19 октября 2011

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

0 голосов
/ 22 февраля 2016

Используйте переключатель / P Пример - cl / C sample.c

Выше будет создан файл .I с тем же именем (sample.I).Теперь, чтобы скомпилировать файл .I, просто переименуйте файл .I в .C, затем выполните cl / c для компиляции и создания объектного файла.

0 голосов
/ 19 октября 2011

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

...