Я пытаюсь скомпилировать некоторые файлы MATLAB MEX из исходного кода C ++. Файлы, которые я пытаюсь скомпилировать можно найти здесь; Я использую Windows XP в 32-разрядной системе MATLAB 2012a и установил Microsoft Windows SDK v7.1 для использования в качестве компилятора.
MATLAB выдает следующую ошибку, если я пытаюсь скомпилировать:
>> mex -O -largeArrayDims osc_free_address.c
osc_free_address.c
osc_free_address.c(1) : error C2059: syntax error : '<'
osc_free_address.c(37) : error C2015: too many characters in constant
osc_free_address.c(38) : error C2059: syntax error : '<'
osc_free_address.c(39) : error C2015: too many characters in constant
osc_free_address.c(39) : error C2015: too many characters in constant
osc_free_address.c(39) : error C2015: too many characters in constant
osc_free_address.c(41) : error C2018: unknown character '0x40'
osc_free_address.c(43) : error C2015: too many characters in constant
osc_free_address.c(44) : error C2015: too many characters in constant
osc_free_address.c(44) : error C2015: too many characters in constant
osc_free_address.c(44) : error C2015: too many characters in constant
osc_free_address.c(44) : error C2015: too many characters in constant
osc_free_address.c(46) : error C2059: syntax error : '<'
osc_free_address.c(82) : fatal error C1021: invalid preprocessor command 'page'
C:\PROGRA~1\MATLAB\R2012A\BIN\MEX.PL: Error: Compile of 'osc_free_address.c' failed.
Error using mex (line 206)
Unable to complete successfully.
я использовал мекс-настройка настроить мой компилятор с Microsoft Windows SDK v7.1. Интересно, что хотя они установлены в моей системе, MATLAB не видит MS Visual Studio C ++ 2008 или же 2010. Я также попытался скомпилировать с Lcc-win32 C 2.4.1 компилятор (который является признано MATLAB), с тем же эффектом, как показано выше.
Я понимаю, что этот конкретный набор исходных файлов C ++ может быть требует что-то называется liblo компилировать (я не уверен, является ли это требованием во время компиляции или во время выполнения); насколько я знаю, я установил их правильно, но есть вероятность, что проблема может лежать и здесь.
Любая помощь будет принята с благодарностью.
Попробуйте переименовать ваш .c
файлы в .cpp
и пересобрать
>> mex -largeArrayDims -O osc_free_address.cpp
Кроме того, почему бы вам не попробовать файл build m, который поставляется вместе с пакетом
(как предложено в этот вопрос)?
Вы скачали и скомпилировали liblo? вам может понадобиться добавить путь включения и путь к библиотеке для него в mex
команда?
>> mex -largeArrayDims -O -I<liblo include path> -L<liblo lib path> -llo osc_free_address.cpp
Других решений пока нет …