VisualStudio项目中多个同名文件处理

news2025/2/4 21:47:58

现象

在vs2019环境中,现在开发一个较大的C++项目,它的源文件在多个文件夹中组织(在文件系统上)。在其中两个文件夹中,有几个同名的文件。如:

.\ConsoleApplication1\JAMGEN_CONFIG_x4_test\firls.c
.\ConsoleApplication1\NoiseConfig_test\firls.c

两个firls.c中的函数名称都是一样的,只是函数实现的逻辑不一样

在VS2019工程可以多添加几个"筛选器"(虚拟文件夹),这些虚拟文件名称大致与文件所在的目录对应,这个就把文件名相同的文件隔离开了。添加的方法如下图所示:

现在的问题是,当我构建这个项目时,VS2019把目标文件放在一个单一的目录中,结果是:

.\ConsoleApplication1\Debug\firls.obj

程序编译完你可以在输出窗口看到一条警告:

提示文件firls.c已经有了,再次编译它时忽略多余的指定;此时程序并没有报错,只是编译给了警告提示;但是程序的逻辑后面一个调用firls.c里面的函数的执行结果肯定是不对的。

此时我把.\ConsoleApplication1\NoiseConfig_test\firls.c里面的函数名称改一下,换一个不同的函数名称,Debug目录还是看一样:

.\ConsoleApplication1\Debug\firls.obj

但是编译的时候出错了,如下图所示:

看来还是不行,那是因为函数名称改了,在之前编译的firls.obj找不到这个函数,链接报错了。是否有一种方法可以让MSVC根据目录(或过滤器)来创建具有惟一名称的对象文件?我想这样:

.\ConsoleApplication1\Debug\JAMGEN_CONFIG_x4_test\firls.obj
.\ConsoleApplication1\Debug\NoiseConfig_test\firls.obj

解决方案

您可以设置项目范围的“对象文件名”(配置属性->C/ c++ ->输出文件)

$(IntDir)%(RelativeDir)

具体设置如下图所示:

设置完,在编译一次,在Debug目录下,果然分目录生成.obj文件,像这样:

.\ConsoleApplication1\Debug\JAMGEN_CONFIG_x4_test\firls.obj
.\ConsoleApplication1\Debug\NoiseConfig_test\firls.obj

达到预期的效果了,注意配置的时候使用源文件的相对源文件夹。注意%,但是如果您的源文件位于您的项目目录中,其中包含..\。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1337247.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网工内推 | 技术支持、解决方案工程师,RHCA认证优先,带薪年假

01 天融信 招聘岗位:售后技术支持工程师 职责描述: 1.负责公司运营商态势安全项目系统远程维护与运营支持工作。 2.负责远程对态势平台、数据探针进行日常巡检,及时发现故障问题,并反馈处置。 3.负责远程支撑态势平台的功能考核&…

TwIST算法MALTLAB主程序详解

TwIST算法MALTLAB主程序详解 关于TwIST算法的具体原理可以参考: 链接: https://ieeexplore.ieee.org/abstract/document/4358846 链接: https://blog.csdn.net/jbb0523/article/details/52193209 该算法的MATLAB源代码: 链接: http://www.lx.it.pt/~bi…

C++ DAY1 作业

1.定义自己的命名空间myspace&#xff0c;并在myspace中定义一个字符串&#xff0c;并实现求字符串长度 #include <iostream>using namespace std; namespace myspace {string str;int length_fun(){getline(cin,str);int i 0;while(str[i] ! \0){i;}return i;}} using…

How to Clean Text for Machine Learning with Python

NLP 在本教程中&#xff0c;您将了解如何清理和准备文本&#xff0c;以便使用机器学习进行建模。 完成本教程后&#xff0c;您将了解&#xff1a; 如何通过开发自己的非常简单的文本清理工具开始。 如何更上一层楼并使用 NLTK 库中更复杂的方法。 在使用现代文本表示方法&am…

论文润色有用吗 神码ai

大家好&#xff0c;今天来聊聊论文润色有用吗&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 标题&#xff1a;论文润色有用吗&#xff1f;专业软件助你提升论文质量 一、…

sheng的学习笔记-【中】【吴恩达课后测验】Course 4 -卷积神经网络 - 第二周测验

课程4_第2周_测验题 目录 第一题 1.在典型的卷积神经网络中&#xff0c;随着网络的深度增加&#xff0c;你能看到的现象是&#xff1f; A. 【  】 n H n_H nH​和 n W n_W nW​增加&#xff0c;同时 n C n_C nC​减少 B. 【  】 n H n_H nH​和 n W n_W nW​减少&#x…

【NR技术】 EN-DC移动性流程

1 概述 NR支持LTE和NR共同组网&#xff0c;UE同时连接到eNB和gNB&#xff0c;NSA组网时&#xff0c;EN-DC是一种主流连接方式。 2 EN-DC移动性处理流程 2.1 Inter-gNB-DU Mobility using MCG SRB 在EN-DC操作过程中&#xff0c;当只有MCG SRB可用时&#xff0c;UE从一个gNB-D…

【前端技术】Vite vs Webpack

✨专栏介绍 在当今数字化时代&#xff0c;Web应用程序已经成为了人们生活和工作中不可或缺的一部分。而要构建出令人印象深刻且功能强大的Web应用程序&#xff0c;就需要掌握一系列前端技术。前端技术涵盖了HTML、CSS和JavaScript等核心技术&#xff0c;以及各种框架、库和工具…

网络通信-Linux 对网络通信的实现

Linux 网络 IO 模型 同步和异步&#xff0c;阻塞和非阻塞 同步和异步 关注的是调用方是否主动获取结果 同步:同步的意思就是调用方需要主动等待结果的返回 异步:异步的意思就是不需要主动等待结果的返回&#xff0c;而是通过其他手段比如&#xff0c;状态通知&#xff0…

CNVD原创漏洞审核和处理流程

一、CNVD原创漏洞审核归档和发布主流程 &#xff08;一&#xff09;审核和归档流程 审核流程分为一级、二级、三级审核&#xff0c;其中一级审核主要对提交的漏洞信息完整性进行审核&#xff0c;漏洞符合可验证&#xff08;通用型漏洞有验证代码信息或多个互联网实例、事件型…

Java之遍历树状菜单

&#x1f607;作者介绍&#xff1a;一个有梦想、有理想、有目标的&#xff0c;且渴望能够学有所成的追梦人。 &#x1f386;学习格言&#xff1a;不读书的人,思想就会停止。——狄德罗 ⛪️个人主页&#xff1a;进入博主主页 &#x1f5fc;专栏系列&#xff1a;无 &#x1f33c…

Android studio 使用greenDao根据实体类生成dao类

1.遇到的问题 使用android studio根据实体类生成dao其实也很简单&#xff0c;你只要实现 Parcelable Entity public class ConfigDataModel implements Parcelable {Id(autoincrement true)private Long id null; } 2.使用自带的方法生成 使用build-->make Project生成 …

软件体系结构复习

复习参考&#xff1a; 一文搞懂什么是RESTful API 九种常见UML图 企业级软件开发的基本概念 软件架构&#xff1a;在设计和构建软件系统时采用的基本结构和原则。 它涉及到对软件系统进行模块化、组织和分解的方式&#xff0c;以及不同模块之间的交互和通信方式。在软件设计中…

pyomo使用cplex求解,进行冲突校验

文章目录 求解参数设置模型保存模型冲突校验pyomo冲突校验cplex冲突校验docplex冲突校验 CPLEX 安装包下载 pyomo使用 cplex求解&#xff0c;进行冲突校验 求解参数设置 options {"timelimit" : 60*60, # 设置求解时间&#xff0c;超过设置时间&#xff0c;求解停…

短视频矩阵系统的崛起和影响

近年来&#xff0c;短视频矩阵系统已经成为了社交媒体中的一股新势力。这个新兴的社交媒体形式以其独特的魅力和吸引力&#xff0c;迅速吸引了大量的用户。这个系统简单来说就是将海量短视频整合在一个平台上&#xff0c;使用户可以方便地观看和分享好玩有趣的短视频。 短视频…

巨大成就背后,我揭开比亚迪销量第一秘密

可以说比亚迪已经成为我每日注视的焦点所在&#xff0c;无论数据走势还是旗下各品牌新车动向&#xff0c;我都抱着浓厚兴趣细细研究。 今天&#xff0c;当我读到比亚迪再次蝉联新能源车销量王座的消息时&#xff0c;我不禁为之振奋。这家在新能源车业风生水起的企业&#xf…

【Dart】P0 Win、Mac 使用与安装

Dart 使用与安装 Dart 下载安装Windows 版本MacOS版本处于境外安装 Dart 开发工具 Dart 下载安装 Windows 版本 安装网址&#xff1a; http://gekorm.com/dart-windows/ 安装后测试&#xff1a; dart --versionMacOS版本 首先安装 Homebrew&#xff1a; 终端输入&#xff…

【EI社科会议征稿】第四届公共管理与智能社会国际学术会议(PMIS 2024)

第四届公共管理与智能社会国际学术会议&#xff08;PMIS 2024) 2024 4th International Conference on Public Management and Intelligent Society 第四届公共管理与智能社会国际学术会议将在2024年3月15-17日在长沙召开。PMIS 2024由中南大学社会计算研究中心、中南大学公共…

线上夺旗开启!由MoveBit主办,Sui独家赞助的MoveCTF 2024开放注册

*本文从MoveBit公众号转载 去年底&#xff0c;由 MoveBit 推出的首个 MoveCTF 线上安全竞赛 — MoveCTF 2022 备受关注&#xff0c;吸引了大量 Move 生态开发者踊跃参与。为持续推动 Move 生态系统的蓬勃发展&#xff0c;进一步丰富开发者在 Move 安全的专业知识&#xff0c;M…