Matlab编译器与启动脚本
因此,我尝试使用Matlab编译器来构建一个独立的应用程序,该应用程序使用MCR在单独的机器上运行。实际的应用程序遵循这一点来对GPU进行基准测试。当我打开matlab following时,我发出以下命令:Matlab编译器与启动脚本,matlab,matlab-deployment,matlab-compiler,Matlab,Matlab Deployment,Matlab Compiler,因此,我尝试使用Matlab编译器来构建一个独立的应用程序,该应用程序使用MCR在单独的机器上运行。实际的应用程序遵循这一点来对GPU进行基准测试。当我打开matlab following时,我发出以下命令: mcc -mv -o gpuTest mainBench.m benchFcn.m executeBenchmarks.m getData.m paralleldemo_gpu_backslash.m timeSolve.m waitForCpu.m waitForGpu.m 输出为:
mcc -mv -o gpuTest mainBench.m benchFcn.m executeBenchmarks.m getData.m paralleldemo_gpu_backslash.m timeSolve.m waitForCpu.m waitForGpu.m
输出为:
Compiler version: 5.1 (R2014a)
Dependency analysis by REQUIREMENTS.
Parsing file "/media/hdd/work/matlab/gpuBench/mainBench.m"
(Referenced from: "Compiler Command Line").
Parsing file "/media/hdd/work/matlab/gpuBench/benchFcn.m"
(Referenced from: "Compiler Command Line").
Parsing file "/media/hdd/work/matlab/gpuBench/executeBenchmarks.m"
(Referenced from: "Compiler Command Line").
Parsing file "/media/hdd/work/matlab/gpuBench/getData.m"
(Referenced from: "Compiler Command Line").
Parsing file "/media/hdd/work/matlab/gpuBench/paralleldemo_gpu_backslash.m"
(Referenced from: "Compiler Command Line").
Parsing file "/media/hdd/work/matlab/gpuBench/timeSolve.m"
(Referenced from: "Compiler Command Line").
Parsing file "/media/hdd/work/matlab/gpuBench/waitForCpu.m"
(Referenced from: "Compiler Command Line").
Parsing file "/media/hdd/work/matlab/gpuBench/waitForGpu.m"
(Referenced from: "Compiler Command Line").
Parsing file "/opt/MATLAB/R2014a/toolbox/compiler/deploy/deployprint.m"
(Referenced from: "Compiler Command Line").
Parsing file "/opt/MATLAB/R2014a/toolbox/compiler/deploy/printdlg.m"
(Referenced from: "Compiler Command Line").
而在另一台机器上,如果设置了环境变量,我只执行命令
./gpuTest
由此产生的错误是:
Cannot CD to /media/hdd/work/matlab (Name is nonexistent or not a directory).
Error in startup (line 1)
问题是本应编译的脚本中没有“启动”脚本。然而,我确实有一个“startup.m”脚本,在我的启动文件夹中,它实际上执行“cd/media/hdd/work/matlab”和其他一些东西
我有两个问题:
将启动脚本更改为:
if ~isdeployed
cd /media/hdd/work/matlab
end
为什么-我真的不知道-我想这是为了让你可以初始化一些东西,但这不是我用来回答你两个问题的“功能”:
startup.m
脚本,以确保主脚本的运行与常规MATLAB会话中的运行完全相同。您会发现,它还包括一堆其他需要的东西,比如您的首选项文件夹,这也是确保它与常规MATLAB会话中运行的一样需要的isdeployed
,以阻止不希望在部署版本中运行的任何内容。就我个人而言,我通常将以下内容放在启动脚本的顶部,以阻止一切startup.m
if isdeployed
return
end