Microsoft SDKs 有文件重定义导致编译失败的处理

2023-11-10 10:30

本文主要是介绍Microsoft SDKs 有文件重定义导致编译失败的处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        一个32位的mfc项目,之前采用vs2019编译,现在换了电脑(系统是win10),采用vs2022编译时,提示如下错误:

1>------ 已启动生成: 项目: aAnsys, 配置: Debug Win32 ------
1>cl : 命令行  warning D9035: “Gm”选项已否决,并将在将来的版本中移除
1>stdafx.cpp
1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\sal_supp.h(57,1): warning C4005: “__useHeader”: 宏重定义
1>C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.37.32822\include\sal.h(2866,1): message : 参见“__useHeader”的前一个定义
1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\specstrings_supp.h(77,1): warning C4005: “__on_failure”: 宏重定义
1>C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.37.32822\include\sal.h(2876,1): message : 参见“__on_failure”的前一个定义
1>C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.37.32822\atlmfc\include\atlcore.h(659,2): error C2039: "SetDefaultDllDirectories": 不是 "`global namespace'" 的成员
1>C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.37.32822\atlmfc\include\atlcore.h(659,2): error C2065: “SetDefaultDllDirectories”: 未声明的标识符
1>C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.37.32822\atlmfc\include\atlcore.h(661,45): error C2065: “LOAD_LIBRARY_SEARCH_SYSTEM32”: 未声明的标识符
1>已完成生成项目“aAnsys.vcxproj”的操作 - 失败。
========== 生成: 0 成功,1 失败,0 最新,0 已跳过 ==========

        代码没有做任何修改,显然是包含的头文件问题导致的,但一般来说windows的头文件我从来都没有作过特别修改。

        为了验证是不是和工程是从以前版本升级到2022版本时出现的问题,就用vs2022创建了一个单文档项目(和我要编译的项目类型一致),所有选项都采用默认。发现默认编译的是64位,是没有问题的,编译成功,然后切换到32位再编译,就出现了一样的错误,这说明提倡大家用64位的程序,但我现有的项目依赖了其它很多的库文件,没法切换到64位,所以还是要找到解决办法才行。

        根据网上的一些说法,好像也不靠谱,但是给了点提示。

        在项目上点右键,属性 -> VC++目录 -> 包含目录,如下所示:

看两个目录:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A

C:\Program Files (x86)\Windows Kits\10

去电脑上查看这两个目录,发现里面都有很多文件,除了这两个目录之外,也有其它的目录,但里面都是只有几个文件,显然不会构成威胁。那既然提示是 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\ 中的文件有重复的定义,所以干脆就把这个目录从包含的目录中删除掉试试。其中注意到这个目录是继承过来的,所以去属性管理器里看看(如果没有打开,就 视图->其它窗口->属性管理器):属性管理器->随便展开一个工程->Debug|Win32->Microsoft.Cpp.Win32.user,双击这个文件,然后 vc++目录->包含目录:

这个里面,第一行就是目标路径,选中它,点上面的“x”号删除掉,然后确定保存。然后再编译,重复定义消失,编译顺利通过,至此问题解决。

这篇关于Microsoft SDKs 有文件重定义导致编译失败的处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/382068

相关文章

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、