使用MATLAB编译C(C++)程序时,有时会遇到下面的错误:
Error using mex
正在创建库 computeScoreContrast.lib 和对象 computeScoreContrast.exp
computeScoreContrast.obj : error LNK2019: 无法解析的外部符号 mxErrMsgTxt,该符号在函数mexFunction 中被引用
computeScoreContrast.mexw64 : fatal error LNK1120: 1 个无法解析的外部命令
(声明:我这里的编译环境是Windows系统,MATLAB2017a+Visual Studio 2015)
分析:遇到无法解析的符号,先检查是否是符号拼写错误。例如上面的错误显示,实际应该为:“mexErrMsgTxt”。
修改方法:
打开原 .c 文件,按Ctrl + F,找到程序中的名字“mxErrMsgTxt”,将其修改为“mexErrMsgTxt”,保存。再在MATLAB中重新进行编译即可。
PS:如需更多了解mexErrMsgTxt,可以打开MATLAB的帮助文档进行查看。