【问题标题】:using visual C++ compiler in matlab在 matlab 中使用可视化 C++ 编译器
【发布时间】:2012-08-10 20:02:21
【问题描述】:

我在 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 compiler-construction loadlibrary


    【解决方案1】:

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

    【讨论】:

    • 我使用 Matlab 7.6.0(R2008a) 并安装了 Visual c++ 2008 这是 R2008a 支持的编译器之一
    • Visual C++ '08 的安装可能有问题?您是否尝试过重新安装它?如果您确实选择了 32 位。可能是安装时出了问题。
    【解决方案2】:

    根据您的描述,在您输入 mex -setup 后,MATLAB 应该问您的第一件事:

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

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

    【讨论】:

    • 我做的都是正确的。我使用 mex -setup,之后我选择了 Visual c++ 编译器,但我不知道为什么 matlab 在我想使用 loadlibrary 函数时使用 lcc。
    【解决方案3】:

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

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

    将此与current R2012a 帮助页面进行比较,其中明确指出您必须选择带有mex -setup 的编译器。

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

    【讨论】:

    • 感谢我使用 widows 32 位和 Matlab 32 位,我看到了 R2008a 32 位和 Visual c++ 2008 支持的编译器列表,但对于 loadlibrary 函数,我不知道为什么它不支持不工作??
    猜你喜欢
    • 2012-06-26
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多