在matlab中使用Visual C++编译器

问题描述 投票:0回答:3

我在Matlab中安装了两个编译器:LCC和Visual C++ 2008

我想在 matlab 中加载 C++ 头文件,但是当我想这样做时,matlab 使用 LCC 而不是

Visual C++ 并给了我一些警告。

我用过:

 mex -setup
 mbuild -setup

但是 Matlab 仍然使用 LCC 来加载我的 C++ 头文件

>> loadlibrary('DLLing.dll', 'DLLTutorial.h')

警告:来自 C 预处理器的消息:

lcc 预处理器错误:C:\Users\MAHNAZ\Documents\MATLAB\DLLTutorial.h:3 找不到包含文件

我该如何对 Matlab 说使用 Visual C++ 编译器而不是 LCC?

matlab loadlibrary
3个回答
1
投票

您使用的 MatLab 版本是什么?它可能不假定您计算机上安装的 Microsoft SDK 版本。这不是真正的答案,但我还不能发表评论。


0
投票

根据您的描述,输入

mex -setup
后,MATLAB 应该问您的第一件事:

Please choose your compiler for building external interface (MEX) files:
Would you like mex to locate installed compilers [y]/n? 

在此之后,您应该按

y
,然后您应该会看到可用编译器的列表。从其中选择一个合适的。


0
投票

您使用的 Windows 版本是 32 位还是 64 位(针对 Windows 和安装的 MATLAB 版本的问题)?

查看 R2008a 的存档文档(您必须登录才能查看该页面),似乎 LOADLIBRARY 需要 64 位平台上的 VS2005(如果不可用,则可能默认为 LCC)。事实上,它没有明确说明如何确定使用哪个编译器。 (如果您愿意,您可以

edit loadlibrary.m
并跟踪执行过程,看看为什么它最终调用 LCC 而不是 Visual C++)

将此与 current R2012a 帮助页面进行比较,其中明确指出您必须使用

mex -setup
选择编译器。

请注意,未来版本将不再附带 LCC 编译器。

© www.soinside.com 2019 - 2024. All rights reserved.