我在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 版本是什么?它可能不假定您计算机上安装的 Microsoft SDK 版本。这不是真正的答案,但我还不能发表评论。
根据您的描述,输入
mex -setup
后,MATLAB 应该问您的第一件事:
Please choose your compiler for building external interface (MEX) files:
Would you like mex to locate installed compilers [y]/n?
在此之后,您应该按
y
,然后您应该会看到可用编译器的列表。从其中选择一个合适的。
您使用的 Windows 版本是 32 位还是 64 位(针对 Windows 和安装的 MATLAB 版本的问题)?
查看 R2008a 的存档文档(您必须登录才能查看该页面),似乎 LOADLIBRARY 需要 64 位平台上的 VS2005(如果不可用,则可能默认为 LCC)。事实上,它没有明确说明如何确定使用哪个编译器。 (如果您愿意,您可以
edit loadlibrary.m
并跟踪执行过程,看看为什么它最终调用 LCC 而不是 Visual C++)
将此与 current R2012a 帮助页面进行比较,其中明确指出您必须使用
mex -setup
选择编译器。
请注意,未来版本将不再附带 LCC 编译器。