4

我对 Matlab 有一个非常烦人的问题。我有一个自定义 C 风格的 DLL 来与我们的硬件通信。它在我的电脑上运行良好,在我同事的电脑上运行良好。在第三台 PC 上,它无法加载:

在 365 处使用 ==> loadlibrary 时出错 无法预处理输入文件。预处理器的输出是:'cl' 不是内部或外部命令、可运行程序或批处理文件。

显然它找不到编译器。然而运行 !mex -setup 让我的交互位选择机器上唯一的编译器(VS2008)并检查 !set vs 显示路径正确。尝试直接添加路径似乎也无济于事。因为我对 Matlab 知之甚少,对 matlab 论坛的广泛搜索和尝试建议也无济于事。有人有任何线索吗?

4

2 回答 2

5

我不直接在你添加路径的地方做,而是尝试将 cl.exe 所在的路径添加到:

我的电脑 -> 属性 -> 高级 -> 环境变量 -> 系统变量 -> PATH

如果你打开一个命令提示符(Execute -> cmd.exe)并写“set PATH”(没有“”)你能找到正确的路径吗?如果你写 cl.exe 会发生什么。也许你应该从正确的 Visual Studio 版本(即 C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin )

于 2012-07-18T11:11:10.207 回答
3

也许像创建一个 cl.bat/cl.cmd 文件这样的黑客

@rem CL.CMD
@rem vcvars32 or vcvars64 depending on the OS
@rem Explicitly set the variables for VC
call "<YourVCDir>\Bin\VCVARS32.BAT"
@rem Pass all the parameters to the "real" cl.exe
cl.exe %*

有助于 ?

于 2012-07-18T11:02:21.120 回答