0

我在 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 找不到包含文件

我怎么能对使用 Visual c++ 编译器而不是 LCC 的 Matlab 说?

4

3 回答 3

1

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

于 2012-08-10T20:18:50.243 回答
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,然后您应该会看到可用编译器的列表。从他们中选择一个合适的。

于 2012-08-11T04:07:08.547 回答
0

您使用的是哪个版本的 Windows,它是 32 位还是 64 位(Windows 和安装的 MATLAB 版本都有问题)?

查看 R2008a 的存档文档(您必须登录才能查看该页面),似乎LOADLIBRARY 在 64 位平台上需要 VS2005(如果它不可用,可能默认为 LCC)。事实是它没有明确说明它如何确定要使用的编译器。(如果你能做到,你可以edit loadlibrary.m跟踪执行,看看为什么它最终会调用 LCC 而不是 Visual C++)

将此与当前的R2012a 帮助页面进行比较,其中明确指出您必须选择带有mex -setup.

请注意,LCC 编译器将不再随未来版本一起提供。

于 2012-08-11T11:22:24.017 回答