用matlab调用vs2015来编译vs工程

用matlab调用vs2015来编译vs工程

一、背景:

在测试仿真模型的时候需要自动化批量测试。而模型的输入是一个加密的任务文件。这个文件是大佬用cpp写的,需要用vs编译。

二、目的:

因此我想要实现的功能就是:

  1. 用matlab脚本设置不同任务信息,自动生成不同的cpp程序。
  2. 调用vs编译,生成加密的任务文件
  3. 调用simulink运行模型,仿真任务执行情况
  4. 对比任务执行情况和m脚本设置时预计的情况

这样就可以在matlab环境下实现全流程仿真测试。

三、实现

基本实现思路是用matlab脚本中用dos命令实现对vs的调用。
(这种方法其实可以实现对所有软件的调用)

3.1. 配置环境

首先需要添加环境变量,把需要的头文件include和库文件lib加进去

新建一个变量,名为include(不区分大小写),然后变量值有如下两个:

D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include

类似地,新建一个变量,名为lib(不区分大小写),然后变量值有如下两个:

D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib

其他的如果有必要,就也加上:
在include下添加:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt

在lib下添加:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x86

为了能在命令行使用devenv命令,还需要在path下添加:

D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
D:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE

3.2. 自动编译的dos命令

添加完这些环境之后,如果想编译普通的cpp程序,可以在命令行使用命令:
cl xxx_main.cpp

但是编译工程还是不行,需要用到下面的命令:

devenv "TestProg.sln" /Rebuild Debug /project "xxx\TestProg.vcxproj"

会编译出可执行程序,然后再运行可执行程序即可

3.3. matlab脚本

这部分值得展开的,
需要注意的是,如果想在某个目录下执行什么dos命令
需要直接cd(‘xxxx’)进去。
而不能 dos(‘cd xxxxxx’)

把上面在命令行执行的命令,在matlab脚本里用dos调用即可
如:

dos('devenv "TestProg.sln" /Rebuild Debug /project "xxx\TestProg.vcxproj"')

你可能感兴趣的:(matlab,开发语言,自动化)