Problema
Ao tentar compilar sua S-Function do Matlab ou Simulink usando um comando como
mex_error_example.sh
mex mysfunction.cppvocê recebe o seguinte erro:
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
?Solução
O problema aqui é que você não está usando o mex do Matlab, mas um programa diferente baseado em TeX chamado mex. Isso provavelmente se deve ao binário mex estar na sua variável de ambiente PATH antes do diretório de binários do Matlab.
Para corrigir isso, você pode:
- Usar o caminho completo para o binário
mexna sua instalação do Matlab, ex./usr/local/MATLAB/R2021b/bin/mex, ou - Mudar a ordem dos diretórios na sua variável de ambiente
PATHpara que o diretório de binários do Matlab venha antes do outro diretório de bináriosmex. - Usar o comando
mexda linha de comando do Matlab, que deve automaticamente usar o binário correto.
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