当前位置:网站首页>用matlab调用vs2015来编译vs工程
用matlab调用vs2015来编译vs工程
2022-07-02 22:09:00 【Clouds_Above】
用matlab调用vs2015来编译vs工程
一、背景:
在测试仿真模型的时候需要自动化批量测试。而模型的输入是一个加密的任务文件。这个文件是大佬用cpp写的,需要用vs编译。
二、目的:
因此我想要实现的功能就是:
- 用matlab脚本设置不同任务信息,自动生成不同的cpp程序。
- 调用vs编译,生成加密的任务文件
- 调用simulink运行模型,仿真任务执行情况
- 对比任务执行情况和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"')
边栏推荐
- Successfully changed Splunk default URL root path
- AES高级加密协议的动机阐述
- Niuke network: maximum submatrix
- Methods to solve the tampering of Chrome browser and edeg browser homepage
- [羊城杯2020]easyphp
- Jatpack------LiveData
- Lambda表达式:一篇文章带你通透
- LeetCode 968. 监控二叉树
- Qt QProgressBar详解
- MySQL queries nearby data And sort by distance
猜你喜欢

Hanging mirror security won four global infosec awards on rsac2022

数组进阶提高

从底层结构开始学习FPGA----Xilinx ROM IP的定制与测试

Analyse des données dossiers d'apprentissage - - analyse simple de la variance à facteur unique avec Excel

地平线2022年4月最新方案介绍

Performance optimization - rigorous mode

分享 10 个 JS 闭包面试题(图解),进来看看你能答对多少

Array advanced improvement

Chow-Liu Tree

【板栗糖GIS】arcscene—如何做出有高度的高程图
随机推荐
[leetcode] there are duplicate elements [217]
[chestnut sugar GIS] ArcMap - why should the tick of classic capture be removed when using custom capture?
E-commerce system microservice architecture
P1007 single log bridge
Array advanced improvement
Stop slave is stuck -- the event of the transaction is not copied completely
海思3559万能平台搭建:在截获的YUV图像上旋转操作
Generics and reflection, this is enough
stop slave卡住--事务的事件没有复制完整
[LeetCode] 反转字符串【344】
xshell配置xforward转发火狐浏览器
Successfully changed Splunk default URL root path
Gas station [problem analysis - > problem conversion - > greed]
Freshman learning sharing
Qt QScrollArea
解决Chrome浏览器和Edeg浏览器主页被篡改的方法
數據分析學習記錄--用EXCEL完成簡單的單因素方差分析
Zhong Xuegao responded that the product will not melt for 1 hour: it contains solid components and cannot melt into water
数据标注典型案例,景联文科技如何助力企业搭建数据方案
[chestnut sugar GIS] ArcScene - how to make elevation map with height