在设置 matlab 以访问外部 c++ 编译器时需要帮助
Posted
技术标签:
【中文标题】在设置 matlab 以访问外部 c++ 编译器时需要帮助【英文标题】:Need help on setting up matlab to access external c++ compiler 【发布时间】:2012-10-12 11:28:01 【问题描述】:我目前正在关注 SIFTGPU matlab 教程,并且卡在这个非常早期的部分:
SIFTGPU 用 C++ 编码,必须保存为 .mex(matlab 外部) 文件之前,它可以从 Matlab 调用。为了创建 .mex 文件,您必须确保 Matlab 设置为访问外部 通过输入C++编译器
mex –设置
进入 Matlab 命令窗口并按照屏幕上的 说明。
因为我没有 Visual C++ express 2010 和 Windows SDK,所以我按照http://www.mathworks.com/support/compilers/R2011a/win64.html 的说明进行操作
这两个软件的安装都很好,但是对于 matlab:
>> mex -setup
Welcome to mex -setup. This utility will help you set up
a default compiler. For a list of supported compilers, see
http://www.mathworks.com/support/compilers/R2011a/win64.html
Please choose your compiler for building MEX-files:
Would you like mex to locate installed compilers [y]/n? y
Select a compiler:
[1] Microsoft Visual C++ 2010 Express in D:\VS2010
[0] None
Compiler: 1
Please verify your choices:
Compiler: Microsoft Visual C++ 2010 Express
Location: D:\VS2010
Are these correct [y]/n? y
*****************************************************************************
Error: Microsoft Visual C++ 2010 Express requires the Microsoft Windows
Software Development Kit (SDK), but the SDK cannot be found.
For more information about the required SDK, see:
http://www.mathworks.com/support/compilers/R2011a/win64.html
*****************************************************************************
??? Error using ==> mex at 208
Unable to complete successfully.
我不确定下一步该去哪里。有人可以告诉我在安装 VC++ Express 2010 和 Windows SDK 之后我需要做什么吗?
【问题讨论】:
【参考方案1】:不要安装 Visual Studio Express。安装 Windows SDK - 它带有一个编译器,并且该设置适用于 MATLAB。 Visual Studio 也不适用于我,因为您需要运行批处理文件来设置环境。
编辑这是安装 SDK 后的 mex 配置屏幕:
mex 设置
欢迎使用 mex -setup。此实用程序将帮助您设置 默认编译器。如需支持的编译器列表,请参阅http://www.mathworks.com/support/compilers/R2012a/win64.html
请选择您的编译器来构建 MEX 文件:
您希望 mex 找到已安装的编译器 [y]/n 吗?是的
选择编译器:
[1] C:\Program Files (x86)\Microsoft Visual Studio 10.0 中的 Microsoft 软件开发工具包 (SDK) 7.1
[0] 无
编译器:
【讨论】:
@Karl 和你一样,输入mex -setup
并选择windows 编译器。只是不要安装 VC++ Express。只安装 SDK - 那里有一个编译器。
不,根本没有列出编译器。
@Karl 这很奇怪。我已经更新了我的答案,向您展示了我得到的配置选项。我不是 Windows 专家,但也许你将它安装在某个奇怪的地方?或者,也许您选择了不同的安装选项?你在哪里安装的?你在开始菜单中看到了吗?
...等等。你有 C:\Program Files (x86)\Microsoft Visual Studio 10.0?我以为你说“不要安装 Visual Studio”。为什么会在那里?
@Karl 这是 SDK 的一部分。我说你不应该安装 Visual Studio Express,只安装 SDK with 编译器。以上是关于在设置 matlab 以访问外部 c++ 编译器时需要帮助的主要内容,如果未能解决你的问题,请参考以下文章