VS C++常用错误与解决方法

无法找到 v143 的生成工具(平台工具集 =“v143”)

若要使用 v143 生成工具进行生成,请安装 v143 生成工具。或者,可以升级到当前 Visual Studio 工具,方式是通过选择“项目”菜单或右键单击该解决方案,然后选择“重定解决方案目标”。 MatchTool C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 439

<!-- Error if toolset not found -->
<VCMessage Code="MSB8020" Type="Error" Arguments="$(_PlatformToolsetShortName);$(PlatformToolset)" Condition="'$(DesignTimeBuild)' != 'true' and '$(_ToolsetFound)' != 'true'" />

在这里插入图片描述

‘strdup’: The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strdup. See online help for details

这个编译警告信息指出 'strdup' 函数的使用已经不推荐,因为它是 POSIX 标准的一部分,而不是 ISO C 或 C++ 标准。为了保持与 ISO C 和 C++ 标准的一致性,建议使用 _strdup 函数,这是 Microsoft 特定实现的 ISO 兼容版本。

在 Microsoft Visual C++ 编译器中,_strdupstrdup 的 ISO C++ 兼容替代品。如果你的代码中使用了 strdup,并且你希望消除这个警告,你可以将其替换为 _strdup

以下是如何替换的示例:

// 使用 POSIX 标准的名称
char* myString = strdup("Hello World");

// 替换为 ISO C++ 标准的名称
char* myString = _strdup("Hello World");

请注意,_strdup 函数是 Microsoft 的扩展,可能在其他编译器或平台上不可用。如果你的代码需要在多种平台上兼容,你可能需要使用其他方法来复制字符串,例如使用 std::string 或者 std::strcpy 结合 malloc

例如,使用 std::string

#include <string>

std::string original = "Hello World";
std::string copy = original; // 复制字符串

或者使用 strcpymalloc

#include <cstring>
#include <cstdlib>

const char* original = "Hello World";
char* copy = (char*)malloc(strlen(original) + 1);
strcpy(copy, original); // 复制字符串

记得在使用 malloc 分配内存后,需要在适当的时候使用 free 来释放内存。

Windows 下Qt Creator构建错误👎 error: LNK1158: 无法运行“rc.exe” 的问题

在 Windows 操作系统中,使用 Qt Creator 配合 MSVC(Microsoft Visual C++ Compiler)构建套件进行项目编译时,若遇到错误信息 “error: LNK1158: 无法运行‘rc.exe’”,这通常意味着 Qt Creator 未能正确识别或定位到资源编译器的路径。这一问题通常是由于 Qt Creator 未被正确配置以找到 rc.exe 文件所导致的。

针对这一问题,网络上的解决方案建议将 rc.exe 和 rcdll.dll 文件复制到 Qt Creator 安装目录下的相应构建套件的 bin 文件夹中,以及 Visual Studio 安装目录下的 VC/bin 文件夹中。具体路径为:

  • *D:\Qt\Qt5.12.10\5.12.10\msvc2017\bin*
  • *C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin*

然而,当计算机上安装了多个版本的 Windows Kits 时,可能会存在多个 rc.exe 文件。在这种情况下,需要确定与当前项目兼容的特定 Windows Kits 版本,并确保 Qt Creator 能够找到与之对应的 rc.exe。

为了解决这一问题,可以采取以下步骤来定位正确的 Windows Kits 版本及其对应的 rc.exe 文件:

  1. 检查 Qt Creator 项目文件(.pro 文件)或其他相关配置文件,确认项目所需的 Windows Kits 版本。
  2. 在系统路径中搜索 rc.exe 文件,使用命令行工具(如 cmd 或 PowerShell)执行 where.exe rc.exe 命令,列出所有找到的 rc.exe 文件路径。
  3. 根据项目需求,选择正确的 rc.exe 文件路径,并将其路径添加到 Qt Creator 的构建套件配置中,或者直接复制到上述提到的 Qt Creator 或 Visual Studio 的 bin 目录下。

通过上述步骤,可以确保 Qt Creator 在构建过程中能够正确调用到匹配的资源编译器,从而解决 LNK1158 错误。在实际操作中,可能需要根据具体的环境配置和项目需求进行适当的调整。

  1. 已安装Visual Studio 2015
  2. 已安装Qt Creator
  3. Windows 10 Pro x64

查看当前Qt Creator所用的MSVC构建套件所使用的Windows Kits版本信息

打开 Qt Creator,任意新建一个工程,在套件选择的界面中可以看到这里探测到了我的MSVC2015,这里我只选择MSVC2015 64bit这个套件,如图1所示。

工程创建完毕之后,我们进行构建操作,可以发现此时显示出了错误信息 error: LNK1158: 无法运行“rc.exe”

此时我们点击 左侧的 项目,然后找到我们所使用的构建套件下的Build,并将构建环境详情展开,如图所示。

从环境变量列表中可以看到,这里有很多环境变量信息,有些环境变量是系统中已经存在的,有些是Qt Creator所添加的。这里我们着重关注 下面2个环境变量

  • WindowsSdkDir
  • WindowsSDKVersion

在我的计算机中,环境变量 WindowsSdkDir 对应的是 C:\Program Files (x86)\Windows Kits\10\ ,表示当前的WindowsSDK的目录,环境变量WindowsSDKVersion 对应的是 10.0.18362.0\ ,从这连个内容我就可以知道Qt 在这个构建套件下所需要的rc.exe文件应该是 **C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\ ,**我们进入这个目录查看一下,如图所示。

这里有一个arm、arm64和x86、x64,这里我们只需要关注x86和x64即可,例如这里我们工程用的是MSVC2015 x64构建套件,所以我们进入到x64目录下找到rc.exe和rcdll.dll这俩文件,将其拷贝到

[QtCreator安装目录]\[Qt版本号]\[构建套件]\bin 这个目录下即可,我的电脑上的对应目录是 D:\Applications\QtCreator\5.12.2\msvc2015_64\bin ,如图所示,是拷贝后的结果。

拷贝完成之后,再次回到我们的Qt Creator中进行构建,就可以发现此时已经OK了。

总体思路

  1. 从Qt Creator工程的环境变量中定位 Windows Kits版本信息
  2. 复制对应的rc和rcdll到Qt目录下对应的构建套件的bin目录中

错误 C2102 “&”要求左值

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

外星人Alienware m18R1 原厂Windows11系统

装后恢复到您开箱的体验界面&#xff0c;包括所有原机所有驱动AWCC、Mydell、office、mcafee等所有预装软件。 最适合您电脑的系统&#xff0c;经厂家手调试最佳状态&#xff0c;性能与功耗直接拉满&#xff0c;体验最原汁原味的系统。 原厂系统下载网址&#xff1a;http://w…

绝对值不等式——AcWing 104. 货仓选址

绝对值不等式 定义 与数学中的绝对值不等式定义一致&#xff0c;即含有绝对值符号的不等式。 运用情况 在一些需要根据数值与特定值的距离关系来进行判断和处理的算法中。用于对数据范围进行约束和界定。 注意事项 确保对绝对值的处理正确&#xff0c;尤其是在复杂的逻辑…

基于chatgpt-on-wechat搭建个人知识库微信群聊机器人

前言 啊&#xff0c;最近在别人微信群里看到一个聊天机器人&#xff0c;感觉挺好玩的。之前GPT刚出来的时候就知道有人把聊天机器人接入到微信或者QQ中来增加互动&#xff0c;但是当时没想那个想法。 很久没关注这块了&#xff0c;发现现在可以使用大模型知识库的方式来打造自…

【面试干货】Hashtable 与 HashMap 的区别

【面试干货】Hashtable 与 HashMap 的区别 1、线程安全性2、对null值的处理3、遍历方式4、遍历示例5、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java中&#xff0c;Hashtable和HashMap都是基于哈希表实现的Map接口。然而&#…

[Django学习]前端+后端两种方式处理图片流数据

方式1&#xff1a;数据库存放图片地址,图片存放在Django项目文件中 1.首先&#xff0c;我们现在models.py文件中定义模型来存放该图片数据,前端传来的数据都会存放在Django项目文件里的images文件夹下 from django.db import modelsclass Image(models.Model):title models.C…

Windows10任务栏卡顿解决方案

一、重新启动任务资源管理器 右键底部任务栏选择“任务管理器”&#xff1b;按快捷键“CtrlShiftEsc”&#xff1b;搜索框搜索“任务管理器”并单击“打开”&#xff1b;“WinX”打开开始菜单附属菜单&#xff0c;在列表中选择“任务管理器” &#xff1b;按下“ctrlaltdelete”…

24年安克创新社招入职自适应能力cata测评真题分享北森测评高频题库

第一部分&#xff1a;安克创新自适应能力cata测评 感谢您关注安克创新社会招聘&#xff0c;期待与您一起弘扬中国智造之美。 为对您做出全面的评估&#xff0c;现诚邀您参加我们的在线测评。 测评名称&#xff1a;社招-安克创新自适应能力cata测评 第二部分&#xff1a;安克…

容器之笔记本构件演示

代码&#xff1a; #include <gtk-2.0/gtk/gtk.h> #include <glib-2.0/glib.h> #include <gtk-2.0/gdk/gdkkeysyms.h> #include <stdio.h>void rotate_book(GtkButton *button, GtkNotebook *notebook) {gtk_notebook_set_tab_pos(notebook, (notebook…

Linux驱动开发(三)--新字符设备驱动开发 LED驱动开发升级

1、新字符设备驱动原理 使用 register_chrdev 函数注册字符设备的时候只需要给定一个主设备号即可&#xff0c;但是这样会 带来两个问题 需要我们事先确定好哪些主设备号没有使用 会将一个主设备号下的所有次设备号都使用掉&#xff0c;比如现在设置 LED 这个主设备号为200&…

这周,接连两位程序员猝死...

这周接连发生了两起不幸的事。俩位程序员去世的消息&#xff0c;深感悲伤和惋惜。 6月17号下午&#xff0c;一位负责研发的女员工在虾皮研发中心办公室猝死&#xff0c;年仅 30 岁。 官方通告&#xff1a; 同一天&#xff0c;另一位科大讯飞的高级测试工程师在家突发不适离世…

UDS服务——TransferData (0x36)

诊断协议那些事儿 诊断协议那些事儿专栏系列文章,本文介绍TransferData (0x36)—— 数据传输,用于下载/上传数据时用的,数据的传输方向由不同的服务控制:0x34服务表示下载,0x35服务表示上传。通过阅读本文,希望能对你有所帮助。 文章目录 诊断协议那些事儿传输数据服务…

Xshell7免费版下载安装使用

​一、下载安装​ 1.打开官网下载 https://www.xshell.com/zh/free-for-home-school/ 2.选择合适的下载路径&#xff0c;点击下载按钮&#xff0c;然后按照提示完成安装。 二、Xshell7的使用&#xff0c;Xhell连接Linux 1.连接之前&#xff0c;确保在Linux中开启SSH。参考&a…

VBA学习(15):工作表加密保护后却把密码忘记了?

今天把过去的一篇推文重新整理一下&#xff0c;提供两种解除工作表加密的方法。 一种是傻瓜模式的VBA&#xff0c;复制运行以下代码&#xff0c;即可抹除当前工作簿所有工作表的保护加密。 Sub UnProtct()MsgBox "破解提示&#xff1a;当要求输入密码时请点击取消&#…

Pnpm:包管理的新星,如何颠覆 Npm 和 Yarn

在探索现代 JavaScript 生态系统时&#xff0c;我们常常会遇到新兴技术的快速迭代和改进。其中&#xff0c;包管理工具的发展尤为重要&#xff0c;因为它们直接影响开发效率和项目性能。最近&#xff0c;pnpm 作为一种新的包管理工具引起了广泛关注。它不仅挑战了传统工具如 np…

激励-保健理论和公平理论

激励-保健理论 herzberg的激励-保健理论中&#xff0c;保健因素是context of a job&#xff0c;激励因素是content of a job。 context of a job是受组织控制的因素&#xff0c;比如工作条件&#xff0c;基本工资&#xff0c;公司政策等&#xff0c;个人无法支配。content of…

【深入浅出MySQL】「数据同步架构」分析探索Canal开源技术原理和架构

分析探索Canal开源技术原理和架构 背景说明Canal基本介绍Canal作用方向MySQL同步原理Binlog Dump交互Binlog的协议模型Canal的模拟slave角色Canal的消费订阅 Canal Server模块Canal Instance模块参考资料类似开源项目 背景说明 在早期阶段&#xff0c;阿里巴巴B2B公司由于其在…

WPF文本框中加提示语

效果&#xff1a; WPF中貌似不能像winfrom里一样直接加提示语&#xff0c;需要使用TextBox.Style&#xff0c;将Trigger标签插入进去。 贴源码&#xff1a; <WrapPanel Name"TakeOverExpressNo1"><Label Content"物流单号&#xff1a;"><…

力扣SQL50 每月交易 I 求和 SUM(条件表达式) DATE_FORMAT(日期,指定日期格式)

Problem: 1193. 每月交易 I &#x1f468;‍&#x1f3eb; 参考题解 Code select DATE_FORMAT(trans_date, %Y-%m) AS month,country,count(*) as trans_count,count(if(state approved, 1, NULL)) as approved_count,sum(amount) as trans_total_amount,sum(if(state appr…

MS17-010(Eternal blue永恒之蓝)漏洞利用+修复方法

目录 一、漏洞简介 漏洞原理 影响版本 二、漏洞复现 三、复现过程 1、扫描局域网内的C段主机&#xff08;主机发现&#xff09; 扫描结果&#xff1a; 2.使用MSF的永恒之蓝漏洞模块 3.对主机进行扫描&#xff0c;查看其是否有永恒之蓝漏洞 4.准备攻击 四、漏洞利用 …

华为---OSPF被动接口配置(四)

9.4 OSPF被动接口配置 9.4.1 原理概述 OSPF被动接口也称抑制接口&#xff0c;成为被动接口后&#xff0c;将不会接收和发送OSPF报文。如果要使OSPF路由信息不被某一网络中的路由器获得且使本地路由器不接收网络中其他路由器发布的路由更新信息&#xff0c;即已运行在OSPF协议…