因为一直在做工程,很多时候需要进行算法的验证以及快速实现功能。以前为了方便,会把所需要的环境(如OpenCV等)全部配置好做成一个demo工程放着,有需要的时候就去复制一份出来,这样做的好处是方便,但坏处就是经常拿这个工程做开发,久而久之每个项目都叫做demo...
之前一直觉得这样做不完美,因此乘着这两天空了下来,研究了下怎么用VS做一个工程模板,然后后面可以从这个模板直接创建工程。
第一步:按照正常流程创建工程,并配置OpenCV等环境。配置好的工程文件夹下有如下内容:
第二步:在VS(本人用的VS 2017)的IDE中依次选择:项目->导出模板
下一步,接着填入必要信息如下:
完成。这样就在输出位置上生成了工程模板“ConsoleOpenCVTemplate.zip”。
如果在别的地方要用到这个模板,只需要拷贝它到“C:\Users\weixin\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C++ 项目”(不同机器有些地方不一样)这个文件夹中即可。
在VS中选择新建->项目,就能看到我们刚刚做好的模板:
创建之后会发现这个模板有问题,它并不包含我们自己添加进VS的其他文件和文件夹,如OpenCV的include和lib文件夹,依托该模板创建的工程文件夹如下:
虽然可以理解VS这样做有更加广泛的意义,只保留工程配置和代码,但对于我们来说并不方便。
要往创建出来的工程添加自己的文件,需要修改三个地方,下面以往工程文件夹添加“demo.jpg”这张图片为例。
1.解压缩zip文件。
2.把“demo.jpg”拷贝进解压出来的文件夹中。
3.修改“MyTemplate.vstemplate”文件,如下:
4.修改“ConsoleOpenCVTemplate.vcxproj”文件,如下:
5.修改“ConsoleOpenCVTemplate.vcxproj.filters”文件,同上:
6.重新打包成zip文件(注意不要在最外层带一个文件夹,不然VS识别不到,不要问我怎么知道的。。。)。
7.替换掉“C:\Users\weixin\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C++ 项目”路径下的zip文件。
这样用该模板创建出来的文件就有demo这张图片了。其他的也类似。我们可以用这种方法把需要包含的东西都包含进来。
当然,如果文件太多,这样搞也很要命,可以在生成模板之前,点击这里:
右键“include”,选择“包括在项目中”
这样生成的模板就会带有“include”文件夹,不用自己去搞(这里操作“lib”会有bug,不知道是我个人问题还是VS的问题,所以我用第一种方法添加“lib”文件夹的内容,如下)。
OK,介绍完上面两种方法,只要依序把东西扔进去就大功告成了!以后再也不用复制来复制去或者配置半天了!!!