micro- 2024-07-05 16:05 采纳率: 0%
浏览 29
已结题

错误使用 mex Embedding metadata in the MEX file failed.

img


本人用matlab mex时遇到了这个问题,测试的文件内容非常简单,
#include "mex.h"


#include "mex.h"

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
    mexPrintf("Hello, world!\n");
}


但是就是会遇到这个错误,matlab的版本是2023b,vs的版本试过2019,2022都不行,不知道问题出在哪里了,求各位帮助一下

  • 写回答

19条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-07-05 16:06
    关注

    🕒下午好,题主!目前:🟢[在线]
    📢参考通义千问、由郭老师整理提供!
    📣今日诗号:天涯地角有穷时,只有相思无尽处。

    你好, 你的问题是在MATLAB 2023b中使用MEX文件时出现 "错误使用 mexEmbedding metadata in the MEX file failed" 。尽管你的示例代码非常简单,但这个问题通常与编译器配置或MATLAB和Visual Studio版本兼容性有关。

    以下是一些可能的解决方案和步骤:

    1. 确保编译器设置正确

    • 确认已安装正确的SDK: MATLAB 2023b需要与特定版本的Windows SDK一起使用。在MATLAB命令窗口中运行mex -setup C++,检查是否选择了正确的编译器和SDK。
    • 设置环境变量: 确保Visual Studio的 bin 文件夹路径已添加到系统的 PATH 环境变量中。这将允许MATLAB找到必要的编译器可执行文件。

    2. 检查MEX文件兼容性

    • MATLAB版本兼容性: 确保你的MEX文件与你当前的MATLAB版本(2023b)兼容。较旧版本的MEX文件可能无法与较新版本的MATLAB一起使用。
    • 编译器版本兼容性: 尝试使用与创建MEX文件时相同的Visual Studio版本重新编译你的代码。如果使用不同的编译器版本,则可能会出现兼容性问题。

    3. 禁用MEX文件嵌入式元数据(可选)

    • 从MATLAB R2022a开始,MEX文件默认包含嵌入式元数据。 这可能会导致与旧版MATLAB或某些系统配置不兼容。要禁用此功能,请在编译MEX文件时添加 -nomexembed 选项:
      mex -nomexembed hello.cpp
      
    • 注意: 禁用嵌入式元数据可能会影响某些MATLAB功能,例如代码分析和调试。

    4. 更新或重新安装MATLAB和/或Visual Studio

    • 更新MATLAB: 确保你使用的是最新版本的MATLAB。更新可以解决已知错误并提高兼容性。
    • 重新安装Visual Studio: 如果问题仍然存在,请尝试重新安装Visual Studio。确保选择与你的MATLAB版本兼容的版本。

    以下是更详细的代码示例和故障排除步骤:

    1. 检查编译器设置

    • 在MATLAB命令窗口中运行以下命令:
      mex -setup C++
      
    • 确保已选择与你的系统上安装的Visual Studio版本相对应的编译器。

    2. 编译MEX文件

    • 导航到包含 hello.cpp 文件的目录。
    • 运行以下命令编译MEX文件:
      mex -nomexembed hello.cpp
      

    3. 测试MEX文件

    • 在MATLAB命令窗口中运行以下命令测试MEX文件:
      hello
      
    • 如果一切正常,你应该在命令窗口中看到 "Hello, world!"。

    如果问题仍然存在,请提供以下信息,以便我提供更具体的帮助:

    • 你的Windows版本
    • 你的Visual Studio版本(确切版本号)
    • 你使用的Windows SDK版本
    • 完整的错误消息(包括任何错误代码)

    希望这些解决方案可以帮助你解决问题! 如果还有其他问题,请随时提问。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月6日
  • 创建了问题 7月5日

悬赏问题

  • ¥15 c#转安卓 java html
  • ¥15 os.listdir文件路径找不到
  • ¥15 使用gojs3.0,如何在nodeDataArray设置好text的位置,再go.TextBlock alignment中进行相应的改变
  • ¥15 psfusion图像融合指标很低
  • ¥15 银河麒麟linux系统如何修改/etc/hosts权限为777
  • ¥50 医院HIS系统代码、逻辑学习
  • ¥30 docker离线安装mysql报错,如何解决?
  • ¥15 构建工单的总账影响在哪里查询或修改
  • ¥15 三个简单项目写完之后有重赏之后联系我
  • ¥15 python报内存不能read错误