Получите выход препроцессора от C до MATLAB mex - PullRequest
0 голосов
/ 21 июня 2019

Я хочу получить вывод препроцессора при компиляции моего c-кода через mex из MATLAB с использованием MinGW64 Compiler (C), поэтому с использованием gcc (верно?). Из этого сообщения я понял, что вы можете сделать это с помощью чистого gcc, передав опцию -E в gcc. Однако я установил gcc через приложение MATLAB и поэтому не могу получить к нему доступ через командную строку (также был бы признателен за команду, как это сделать, не переустанавливая MinGW64 и не настраивая его вручную для использования с MATLAB).

Я попытался сделать следующее, предполагая, что флаги компилятора - верный способ передать аргумент:

mex -c grampc_run.c -I../../include -I../include COMPFLAGS='$COMPFLAGS -E'

Это просто приводит к созданию объектного файла.

1 Ответ

1 голос
/ 21 июня 2019

COMPFLAGS используется компилятором MSCV.Компилятор GCC находится в CFLAGS и CXXFLAGS (для компиляции C и C ++ соответственно).Смотрите здесь .Таким образом, вы должны использовать следующий синтаксис:

mex -c grampc_run.c -I../../include -I../include CFLAGS='$CFLAGS -E'

Вы также можете добавить опцию -v к mex.GCC помещает вывод препроцессора в стандартный вывод, который mex может не отображать.С -v он показывает все результаты.

...