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

将v120 C++项目重定向到v140后出现LNK1117错误,求解决办法

解决VS项目从v120迁移到v140后LNK1117: syntax error in option 'LTCG:incremental'错误

问题背景

将基于VS2013(v120)工具集的C++项目迁移到VS2015(v140)后,构建时触发链接错误:LINK : fatal error LNK1117: syntax error in option 'LTCG:incremental',原因是v140版本的Microsoft.Build.CppTasks.Common.dll会默认添加无效的/LTCG:incremental参数,而v140链接器已不再支持该语法。

解决办法

1. 修改项目链接器属性(最直接)

  • 右键项目 → 属性,打开项目属性页
  • 导航到链接器 → 优化,找到链接时间代码生成选项:
    • 若不需要增量链接时间代码生成,直接选择不使用链接时间代码生成
    • 若需要LTCG,选择使用链接时间代码生成(对应参数/LTCG,不带:incremental后缀)
  • 切换到链接器 → 命令行,在其他选项里检查是否残留/LTCG:incremental,如果有直接删除
  • 点击确定后重新构建项目

2. 手动编辑vcxproj配置文件(属性页修改无效时用)

  • 右键项目 → 卸载项目,再次右键项目 → 编辑[项目名].vcxproj
  • 在XML文件中查找所有包含LinkTimeCodeGeneration的节点:
    • 若原配置为<LinkTimeCodeGeneration>Incremental</LinkTimeCodeGeneration>,将其修改为<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>(启用标准LTCG)
    • 若不需要LTCG,直接改为<LinkTimeCodeGeneration>false</LinkTimeCodeGeneration>
  • 保存文件,右键项目 → 重新加载项目,再尝试构建

3. 清理缓存后重新构建

  • 删除项目目录下的obj、bin文件夹
  • 打开VS对应的开发者命令提示符,运行以下命令清理项目:
    msbuild /t:Clean /p:Configuration=Release,Platform=x64
    
    (注意替换Release和x64为你的项目实际配置和平台)
  • 之后重新构建项目

内容的提问来源于stack exchange,提问作者Ankitha Pilli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:31:06