如何修复 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 二进制目录之前。
要修复此问题,你可以:
- 使用 Matlab 安装中
mex二进制文件的完整路径,例如/usr/local/MATLAB/R2021b/bin/mex,或 - 更改
PATH环境变量中目录的顺序,使 Matlab 二进制目录位于其他mex二进制目录之前。 - 从 Matlab 命令行使用
mex命令,它应该自动使用正确的二进制文件。
Check out similar posts by category:
MATLAB/Simulink, C/C++
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow