MFC报错:D8016 “/ZW”和“/Gm”命令行选项不兼容

1

我的编译环境是 VS2019,MFC 程序,编译时显示了错误和警告:

  • 错误 D8016 “/ZW”和“/Gm”命令行选项不兼容
  • 警告 D9035 “Gm”选项已否决,并将在将来的版本中移除

通过百度和 csdn 我没有查询到 /ZW 和 /Gm 是什么意思,也不知道怎样改正。报错行在我的 view 类第一行,第一行是我的注释。整个 view 类代码有些长,不知道需不需要全部贴上来。如果需要我会及时贴上来的。

ava
咕咕咕

2020-4-26

1

你提到的编译错误,对应的编译程序是 cl.exe。具体查看参数步骤:

  1. 点开始菜单,在里面找到 Visual Studio 2019 / Developer Command Prompt for VS 2019,打开。

2. 在命令提示符输入 cl.exe /? ,会列出所有的参数(按回车键翻页),里面可以找到对应的解释:

  • /Gm[-] enable minimal rebuild
  • /ZW enable WinRT language extensions
  1. 除此之外,你还可以在 bing(国际版)搜索引擎搜索关键字“cl.exe /gm /zw”,可以得到官方文档对此参数的更详细解释:

这个错误应该和代码没多大关系,应该是修改了项目参数导致的,或者是用 VS2019 将项目从老版本升级上来导致的,或者可能还有别的原因。解决办法:用 VS2019 新建一个项目,把相关代码文件挪过去并加入到项目里面,再编译,应该就没问题了。

ava
慢羊羊

2020-4-26

技术讨论社区