You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Windows x64应用编译失败求助:错误C2220与警告C4018

问题:Windows x64平台调试Flutter示例应用编译失败

我在Windows x64设备上调试Flutter示例应用时编译失败,报1个错误和1个警告,但Edge、Chrome和Android平台都能正常调试。

调试控制台输出

Launching lib\main.dart on Windows in debug mode...
lib\main.dart:1
F:\flut\flutter_application_5\windows\runner\utils.cpp(52,43): error C2220:  warning treated as error - no 'object' file generated [F:\flut\flutter_application_5\build\windows\runner\flutter_application_5.vcxproj]
F:\flut\flutter_application_5\windows\runner\utils.cpp(52,43): warning C4018:  '>': signed/unsigned mismatch [F:\flut\flutter_application_5\build\windows\runner\flutter_application_5.vcxproj]
Exception: Build process failed.

Flutter Doctor日志

[flutter] flutter doctor -v
[√] Flutter (Channel stable, 3.0.5, on Microsoft Windows [Version 10.0.19044.1826], locale en-US)
    • Flutter version 3.0.5 at C:\src\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (6 weeks ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at C:\Users\MEMPHIS\AppData\Local\Android\sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Enterprise 2019 16.1.0)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
    • Visual Studio Enterprise 2019 version 16.1.28917.181
    • Windows 10 SDK version 10.0.17763.0

[√] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)

[√] VS Code (version 1.70.2)
    • VS Code at C:\Users\MEMPHIS\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.46.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19044.1826]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 104.0.5112.102
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 104.0.1293.63

[√] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!
exit code 0

问题原因与解决方法

问题根源

错误C2220是因为编译器将警告C4018(有符号与无符号整数类型不匹配)强制当作错误处理,导致无法生成目标文件,最终编译失败。该问题通常由Windows项目编译设置、代码类型不匹配,或是Flutter与Visual Studio版本兼容性问题引发。

解决方法

方法1:关闭"警告视为错误"的编译设置

  • 打开项目目录下的windows/runner/flutter_application_5.vcxproj文件(替换为你的项目名称)
  • 找到<TreatWarningAsError>标签,将其值从true修改为false
  • 保存文件后,重新执行flutter run -d windows命令

方法2:修复代码中的类型不匹配问题

  • 打开windows/runner/utils.cpp文件,定位到第52行
  • 找到引发有符号/无符号不匹配的代码,例如将有符号整数与无符号整数直接比较的逻辑,把有符号变量转换为无符号类型(比如static_cast<size_t>(变量名))后再进行比较
  • 保存修改后重新编译项目

方法3:更新Visual Studio版本

你当前使用的Visual Studio 2019 16.1.0版本较旧,可能与Flutter 3.0.5存在兼容性问题。建议将Visual Studio 2019更新至最新版本,或是升级到Visual Studio 2022,之后重新运行项目。


内容的提问来源于stack exchange,提问作者Mohsen Memphis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:39:19