如何修复 Matlab mex 错误:You can't use 'macro parameter character #' in vertical mode.

问题

尝试使用如下命令编译 Matlab 或 Simulink S-Function 时

mex_error_example.sh
mex mysfunction.cpp

你收到以下错误:

pdftex_mex_error.txt
This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024) (preloaded format=mex)
 restricted \write18 enabled.
entering extended mode
(./sine_wave_generator.cpp
This is MeX  Version 1.05  18 XII 1993  (B. Jackowski & M. Ry\'cko)
! You can't use `macro parameter character #' in vertical mode.
l.1 #
     define S_FUNCTION_NAME  sine_wave_generator
?

解决方案

这里的问题是你没有使用 Matlab 的 mex,而是一个不同的基于 TeX 的名为 mex 的程序。这可能是由于 mex 二进制文件在你的 PATH 环境变量中位于 Matlab 二进制目录之前。

要修复此问题,你可以:


Check out similar posts by category: Matlab/Simulink, C/C++