vs2022出现错误的警告,谁能解决一下这个编译器问题(代码无问题)?

迁移策略:从传统 C++ 升级为现代 C++,保持系统完好无损

第一个障碍可能是操作系统。旧版本的操作系统可能带有不支持现代 C++ 的C++ 编译器。例如,旧版 VxWorks 仅支持旧版 WindRiver Diab 编译器,这个编译器支持 C++03,但不支持 C++11。在当前的 VxWorks 版本中,Diab 编译器是以 LLVM 为基础的,支持现代 C++ 版本。此外,VxWorks 的较新版本还支持 GNU 和 ICC 编译器。要使用这两个编译器的任何一个,你都要先升级操作系统,如果你使用的是旧版的 VxWorks,这是项目的自身需求。这只是一个例子,其他遗留环境也会出现类似的操作系统障碍。

有时你也需要支持旧版的操作系统,可能客户有需求,或者因为你需要用旧的硬件设备。管理客户需求,宣布软件产品的终结,这些不在本文内容范围之内,但我想提醒的是,这也是一个必经的过程。

如果在迁移到新环境后,还必须支持旧操作系统和旧编译器,那么你可以将新旧环境共享的代码进行隔离,让这些代码保持原样,同时迁移与新环境相关的部分。

如果你正在转换操作系统或编译器,你的第一步是在新的操作系统(如果需要的话)上用新的编译器编译代码,而不改变 C++ 版本。在用更新的 C++ 版本进行编译之前,编译器的简单更改可能会引发一些需要后续进行修复的问题。这些问题通常是因为不同编译器在各方面的要求不同。一些编译器可能对某些方面更宽松,但另一些编译器可能更严格,这些差异会引发编译错误,需要后续修复。你可以使用错误标志(例如删除,-pedantic 或 -Wall)来避免这类错误,同时在项目中添加一个注释,说明这些错误标志将在后面重新添加。

旁注:如果你的项目使用的是静态或动态代码库,无论是内部还是外部代码库,如果这些库是使用旧版编译器编译的(尤其是使用另一个编译器),那么就可能会出现兼容性问题。ABI(应用程序二进制接口)可能会中断,这可能需要你使用新的编译器重新编译相应的代码库。

如果你使用的是同一操作系统和编译器,但只需升级 C++ 版本,接下来要做的是是设置适当的标志,让构建使用更高级的C++版本(例如,-std=C++17)。因为 C++ 版本大多是向后兼容的(在少数情况下,语言本身可以进行错误修复,要求更改不是向后兼容),所以代码只能按原样编译。但是,如果编译器在某些方面要求更加严格,如有些代码之前不算错误,但现在却算作错误,那么可能会引发编译问题。同样,你可以删除一些错误标志来避免这些问题,这通常属于迁移项目管理的内容,帮你将所需的修复推迟到后面的阶段。

一旦你的项目编译并运行新的 C++ 版本,你就可以长舒一口气了。不过,也不能高兴得太早。接下来是全面认证的步骤,要确保所有产品都能正常工作。在另一个环境中重建代码,导致行为改变,其中可能的原因多种多样。所有这些都是源自隐藏在代码中的缺陷,而这些缺陷现在慢慢显现出来。可能与未定义行为代码有关,因为不能代码行为无法确定最终导致错误;或者因为一些未定义行为代码,导致编译器选择了特定的行为,但在后续更改编译器时,编译行为发生改变。如果你的应用程序是多线程的或基于计时的,则在重建后,一般需要更改计时。环境中的任何微小变动,都会引起新的竞争条件和数据竞争,这些竞争关系可能以前只是隐藏在代码中。

完整的认证之后,一切才真正开始:你的代码可以以更新的C++ 版本进行编译、运行和工作。

你可能已经享受到了升级的快乐。例如,即使代码没有任何更改,从 C++ 98/03 升级到 C++ 11 或更高版本,使用 Rvalue 和移动语义的标准库容器可能会更高效!为了充分利用升级的优势,你也希望使用高级 C++ 特性。不过,问题在于从哪里入手。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

各位360浏览器的用户们:
360极速浏览器X 双核64位,性能更好,速度更快,没有弹窗广告!
采用chromeium95内核,支持IE内核,兼容性更好。
360极速浏览器X特点:
支持Chrome各项新特性,支持HDR
修复浏览器高危漏洞及已知问题
2、360极速浏览器的64位版本
3、性能优化,启动速度、页面加载速度大幅提升
比极速浏览器32位版本性能提升50%
强大的兼容性,依然支持IE模式
完美兼容各种办公OA系统
全新界面,高清壁纸背景,让浏览器更时尚大气
网址导航全新升级,高质量检索一步到位
让视图进入无边界沉浸式体验

2、历史记录中增加最近关闭页
4、优化查看密码的界面
5、修复打开特定路由器登录页面崩溃
6、修复拖动收藏内容崩溃
7、修复地址栏缩放图标无法使用
8、修复无法查看ie内核下的源代码
9、修复独立窗口时无法最大化
10、修复经典皮肤下网页回收站列表图标不显示

3、界面适配win11系统
5、修复小窗口不显示弹幕
6、修复扩展栏图标无法拖动的bug
7、修复异常退出弹窗的bug

版本号21.0.1120.0 1、增加经典皮肤、经典暗黑皮肤
2、增加浏览器启动加速功能
3、修复第一次启动慢的问题
4、修复拖拽标签卡顿的bug
5、修复视频小窗口中不显示进度条的bug
6、修复无法打印的问题
7、修复特定网页游戏登录失败的bug

1、支持收藏栏只在新标签页显示
2、翻译窗口增加停用功能
5、修复新标签页搜索框焦点丢失
6、修复特定场景下载按钮异常显示红点
7、修复快捷方式打开失败的问题
8、修复双屏的时候下载界面不显示“浏览”
9、修复B站番剧小窗口不显示播放条
10、修复自定义老板键不能静音的问题
11、修复大字体下历史网址不显示的问题
12、修复开发者工具的若干bug

2、支持DNS安全解析的doh功能
4、修复点截图更多设置的崩溃

1、修复截图按钮无法隐藏
2、修复菜单按钮显示异常

1、选项页增加自定义显示收藏栏、搜索栏、下载等
2、菜单增加保存网页为图片、保存网页、打印
3、菜单增加网页全局缩放
5、支持自定义显示搜索历史、访问历史
6、浏览历史支持自定义保留时间
7、标签页增加动画效果
8、优化下载逻辑,提高下载成功率
10、修复远程或待机时浏览器崩溃

1、支持标签栏自定义位置到顶部或中部
2、浏览器启动优化,自定义开启预加载启动进程
4、选项增加自定义收藏夹、网页回收站位置
5、收藏管理支持搜索结果显示文件夹位置
6、修复系统休眠后浏览器崩溃
7、修复触屏本点击下载图标崩溃
8、修复翻译插件设置不生效的问题
9、修复某些网站无法更新账号密码

2、支持迅雷加速下载功能
3、支持360安全卫士锁定默认浏览器
4、修复F1快捷键不能设置问题
5、修复拖动标签页卡死问题
6、修复新标签页加载慢的问题
7、修复新标签页打不开后无法刷新的问题

2、支持自定义收藏夹内容宽度
3、修复收藏内容显示不全问题
4、修复部分网站无法加载Flash问题
5、修复部分网站不显示视频小窗口
6、修复翻译可选择源语言
7、地址栏下拉列表自动推荐功能优化
8、修复手动添加的搜索引擎失败问题
9、修复极速内核打开ftp协议失败问题

2、调整收藏夹宽度和高度
3、支持“收藏夹”按钮和“网页回收站”按钮自定义位置
4、修复收藏管理器搜索报错
5、修复部分网站cookies写入失败引起的无法登录
6、优化翻译插件频繁提示弹窗问题

1、浏览器一期用户需求-浏览器界面实现双屏及多屏浏览需求
2、用户可实现默认浏览器管理设置
3、修复用户反馈的部分税务网站智能切核状态异常问题
4、优化冷启动调起浏览器速度
5、修复用户反馈的部分扩展失效问题
6、修复用户反馈的Win11系统状态下浏览器白边问题
7、修复用户反馈的GIF动图复制粘贴后为静态图问题
8、修复用户反馈的集中性崩溃问题
9、用户反馈的部分网页登录失败问题
10、其他已知问题修复

2、支持数字加密视频播放
5、优化分享二维码UI
6、优化暗黑模式下浏览页面效果
7、修复选项页中网页通知、麦克风、摄像头等权限内容无法管理问题
8、修复兼容模式下若干稳定性问题
9、修复用户反馈的下载文件的路径不会自动保存的问题
10、修复用户反馈的扩展图标较小的问题
11、其他已知问题修复

1、更换全新浏览器图标logo
2、支持网页二维码分享功能
3、支持自定义弹窗打开或新标签页打开
4、解决浏览器启动时设默认导致的卡顿问题
5、优化搜索栏UI和体验
6、优化全屏模式功能体验
7、优化视频小窗口工具条的使用体验

1、修复切换主题面板重合
2、修复win11上设置默认浏览器失败
3、修复残留目录和文件
4、修复标签音量按钮错误

平时我工作忙,有问题直接在后面留言,我会尽力修改。

使用 TDM-GCC 4.8.1 及以上版本的集成开发环境都可以支持。例如:

注:MinGW 版本较多,推荐使用 TDM-GCC。(想了解区别,可以参考)

下载的压缩包内文件如下:

│ ├ easyx.h // 头文件(提供了当前最新版本的接口)

下载的压缩包先解压缩,然后将 include 下的头文件和 lib32/lib64 下的库文件,分别拷贝到 MinGW 的头文件和库文件中。如果不确定具体的库文件路径,参考本文末尾的 QA 部分。

2. 增加编译时的链接选项

链接选项增加:-leasyx。每个项目都要这样设置一次,然后编译即可。

  1. 选择组件。可以全部勾选,对系统有洁癖的,可以取消“Start Menu items”、“Add to PATH”两项。

打开 CLion(以 英文版为例)

如果“+”下面有多项配置,选中 MinGW,拖动到最上面,使其成为默认项。点 OK 保存设置。

编译执行,即可看到画出了一个圆。

2. 增加编译时的链接选项

(2) 编写基本测试代码,代码如下:

(4) 点工具栏按钮 Build and run 或按 F9 编译执行,可以看到屏幕画出一个圆。如果这时有编译错误,请根据错误提示修正程序。

3. 生成项目模版,简化操作步骤

通过前面两步已经可以使用 EasyX 了。但是,每次写新项目都要设置链接库,有点麻烦。可以通过生成项目模版简化该过程:

2. 增加编译时的链接选项

(2) 编写基本测试代码,代码如下:

(4) 点工具栏按钮 Compile & run 或按 F11 编译执行,可以看到屏幕画出一个圆。如果这时有编译错误,请根据错误提示修正程序。

3. 生成项目模版,简化操作步骤

通过前面两步已经可以使用 EasyX 了。但是,每次写新项目都要设置链接库,有点麻烦。可以通过生成项目模版简化该过程:

下次再创建项目时,可以直接选择 EasyX Application,然后填写项目名称、选择路径,直接开始编写 EasyX 绘图程序,不用再设置链接库。

Q:我配置不好,如何确定是我本机的问题,还是库的问题?有没有封装好的给我测试一下?

  1. 粘贴前文提到的测试代码,编译运行。

如果可以看到画出一个圆,表示库没有问题。此时,可以选择使用这个版本的 DevC++,也可以再尝试排查自己之前的配置步骤有什么问题。

Q:文件夹好多,我究竟应该把库文件拷贝到哪里?

A:不同的集成开发环境,所集成的 MinGW 版本不同,配置的路径也不完全一致。下表列出了常见集成开发环境默认的头文件和库文件路径:

A:如果将 Dev-C++ 安装到 C:\Program Files 下面,那么文件的修改是需要管理员权限的。所以,用管理员权限启动 Dev-C++,再重复创建项目模版的步骤即可。成功创建项目模版后,平时使用时,不需要管理员权限启动。

Q:我以前安装过其他版本的 Dev-C++,这次严格按照教程来操作,还是有问题,请问怎么解决?

A:一些老版本的 Dev-C++ 的遗留配置文件可能会对新版本产生影响,配置文件路径为:C:\Users\[用户名]\AppData\Roaming\Dev-Cpp,将整个文件夹删掉就好。如果不好找到,就在文件管理器的地址栏输入 %APPDATA%\Dev-Cpp 敲回车,就可以自动跳转到该文件夹,删除即可。

Q:粘贴一些示例代码后,提示无法使用 _getch 函数。

Q:系统里安装了多个编译器会有影响吗?

A:很可能会。请检查编译器设置:

Q:怎么也配置不好,找不到问题在哪,怎么解决?

A:重点检查一下“编译日志”。以官方原版 Dev-Cpp 6.3 为例,配置好之后,点击“全部重新编译”(或按 F12),然后看编译日志:

以示例中的 Dev-Cpp 6.3 环境为例,编译参数为:

可以通过对照编译参数查找问题。

我要回帖

更多关于 捷达vs5能如外加倒车影视 的文章

 

随机推荐