Visual Studio复制、拷贝C++项目与第三方库配置信息到新的项目中

2023-09-17 11:51:50

  本文介绍在Visual Studio软件中,复制一个已有的、配置过多种第三方库C++项目,将其拷贝为一个新的项目,同时使得新项目可以直接使用原有项目中配置好的各类**C++**配置、第三方库等的方法。

  在撰写C++ 代码时,如果需要用到他人撰写的第三方库,那么每次新建一个项目时都需要重新配置一次环境,相对比较麻烦;而如果我们先在一个项目中配置好了不同的第三方库,并且在同样的设备与环境下又新建了一个新的项目,且新的项目还希望可以用同样的第三方库,那么我们就没有必要重新配置这些库了,而是可以直接用之前项目中配置好的文件即可。这一操作,在我们之前的两篇文章Visual Studio软件调用已经配置、编译好的C++第三方库的方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/127171298),以及Visual Studio新项目快速配置已有项目中编译好的C++第三方库的方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/128292242)中都有所介绍;而这一次,我们介绍一种更加方便的方法,直接在资源管理器中复制、粘贴项目文件就可以实现。当然,这种方法需要我们复制、新建的新项目老项目处在同一台电脑的同一个环境下,才可以有效。

  首先,我们在一个文件夹下,有一个名为LCCProduction_4的项目文件夹,这个就是我们希望加以复制、拷贝的项目。其中项目名称就是这个LCCProduction_4;如下图所示。

  打开这一项目文件夹,如下图所示。

  那么为了复制这一个项目,首先,我们需要复制项目的文件夹,并将新得到的文件夹加以重命名(用我们新项目的名称来重命名即可);我这里就重命名为LCCProduction_5;如下图所示。

  接下来,我们进入重命名后的新的项目文件夹中,首先删除下图中,上面紫色框内的两个文件夹。这两个文件夹,第一个.vs是记录了我们在解决方案中的一些配置,比如最近打开的窗口、窗口布局、断点设置等;第二个文件夹x64则是记录了项目编译之后结果的;在我们复制、拷贝并运行新的项目后,这些文件夹都会自动更新,所以现在直接将其删除即可。

  其次,对于上图第二个紫色框内的文件,其原本文件名称中有一部分都是老的项目的名字,也就是LCCProduction_4(我这里截图的时候已经修改过了);我们都将其老项目名称的这一部分,修改为新的项目名称(在这里就是LCCProduction_5)即可。这里需要注意,大家项目文件夹中这几个文件的数量、具体文件格式等可能和我这里图中的不完全一致,大家按照实际情况,将具有老名称的文件都修改为新名称即可。

  随后,如上图所示,我们打开.vcxproj结尾的那一个文件,用任何一个文本编辑器打开都可以;随后,在编辑器中找到“替换”功能。

  接下来,在替换中,将原本的内容设置为我们原本的项目名称新的内容设置为我们新的项目名称;如下图所示。但是这里需要注意,我发现在.vcxproj结尾的那一个文件中,我原本的项目名称中的下划线不存在了,所以我在替换为新的项目名称时,将新的项目名称的下划线也去掉了。大家实际操作时,结合自己文件内的实际情况来修改即可。

  随后,我们打开Visual Studio软件,选择“打开项目或解决方案”选项,如下图所示。

  随后,找到我们刚刚修改好的新的项目文件夹,并选择其中的.vcxproj结尾的那一个文件,如下图所示。

  这里需要注意,如果选择另一个.sln文件打开项目(如下图所示),在运行时就会报错。

  打开新的项目之后,我们可以看到“头文件”和“源文件”中,已经有我们之前项目中的代码文件了。

  此时,就可以运行新的项目了。当然,如果大家的代码文件中,还有关于老项目名称的字样,可能需要再替换修改一下才可以正常运行。我这里因为代码中就不涉及老的项目的名称了,所以直接就可以正常运行。这样子,老项目和新项目还可以同时运行,有点类似于是手动搞了一个多线程了。

  至此,大功告成。

欢迎关注:疯狂学习GIS

更多推荐

C语言实现 cortex-A7核 点LED灯 (附 汇编实现、使用C语言 循环实现、使用C语言 封装函数实现【重要、常用】)

1汇编实现textglobal_startstart:**************LED1点灯--->PE10**************/**************RCC章节初始化**************/CC_INIT:@1.使能GPIOE组控制器,通过RCC_MP_AHB4ENSETR寄存器设置GPIOE组

openGauss学习笔记-72 openGauss 数据库管理-创建和管理分区表

文章目录openGauss学习笔记-72openGauss数据库管理-创建和管理分区表72.1背景信息72.2操作步骤72.2.1使用默认表空间72.2.1.1创建分区表(假设用户已创建tpcdsschema)72.2.1.2插入数据72.2.1.3修改分区表行迁移属性72.2.1.4删除分区72.2.1.5增加分区7

GSMA SGP.21协议学习

GSMASGP.21协议学习1简介1.1概述本文档提供了一种体系结构方法,作为所有市场中设备的远程SIM配置的建议解决方案。体系结构的主要目标是为设备的远程SIM配置提供必要的凭据以获取移动网络访问权限。该版本专注于消费类市场的设备。请注意,SGP.21V1.0[23]尚未弃用。1.2范围本文档的目的是定义一个通用架构

图像识别在自动驾驶和智能安防中的关键应用

图像识别在自动驾驶和智能安防中的关键应用随着人工智能和深度学习技术的发展,图像识别已经成为了自动驾驶和智能安防领域的关键应用之一。图像识别技术能够通过处理和分析图像数据,帮助自动驾驶车辆和智能安防系统实现更准确、更高效的运行。本文将介绍图像识别在自动驾驶和智能安防中的关键应用及其相关技术。一、图像识别在自动驾驶中的应用

c语言每日一练(15)

前言:每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,上学期间将看学业情况更新。五道选择题:1、程序运行的结果为()#include<stdio.h>intmain(){intpad=0;intpAd=0;intsum=5;pad=5;pAd=

SpringMVC之JSR303和拦截器

一.什么是JSR303二.JSR303常用注解作用使用导入pom.xml在实体类相对应的属性中增加注解用来指定校验在hpjyController里面新加以下代码修改eidt.jsp测试结果​编辑二.拦截器什么是拦截器拦截器与过滤器的区别应用场景日志记录:拦截器可以用于记录请求的相关信息,如请求的URL、请求参数、请求的

Springmvc之JSR303和拦截器

JSR303拦截器1.JSR303什么是JSR303JSR是JavaSpecificationRequests的缩写,意思是Java规范提案。是指向JCP(JavaCommunityProcess)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界

第九章(1):循环神经网络与pytorch示例(RNN实现股价预测)

第九章(1):循环神经网络与pytorch示例(RNN实现股价预测)作者:安静到无声个人主页作者简介:人工智能和硬件设计博士生、CSDN与阿里云开发者博客专家,多项比赛获奖者,发表SCI论文多篇。Thanks♪(・ω・)ノ如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!o( ̄▽ ̄)d欢迎大家来到

人工智能如何提高转录效率

人工转录已经以某种形式存在了数百年,甚至数千年。近年来,在人工智能(AI)技术推动下,转录取得长足发展。转录文稿本身是音频内容的文本形式;借此,读者无需再听一遍录音便可了解一段时间内所讲述的内容或所发生的情况。转录对于记录保存、知识共享和改善可访问性至关重要。过去几年,随着AI的发展,人们越来越依赖于一种称为自动语音识

详解Nacos和Eureka的区别

文章目录Eureka是什么Nacos是什么Nacos的实现原理Nacos和Eureka的区别CAP理论连接方式服务异常剔除操作实例方式自我保护机制Eureka是什么Eureka是SpringCloud微服务框架默认的也是推荐的服务注册中心,由Netflix公司与2012将其开源出来,Eureka基于REST服务开发,主

设计模式再探——宏观篇

目录一、背景介绍二、思路&方案三、过程1.宏观介绍2.目的与意义3.七大原则的定义与边界4.思路由来四、总结五、升华一、背景介绍最近在做产品技术建模的过程中,一些地方刻意用到了设计模式,而一些地方也用到了但是并不是很明确。于是乎就带着这个疑惑来再探设计模式的宏观;也查阅了自己的博文:1.14年有宏观(第一层看山是山,知

热文推荐