Skip to content

构建过程常见错误

vs2017译器构建出错

error D8050: 无法执行 xxx/c1xx.dll 未能将命令行放入调试记录中

如果你的vs正确安装,但出现这个错误,有两种情况:你的构建目录可能存在中文,例如你的用户名就是中文,早期版本的vs,例如vs2017,会把构建目录放到用户的临时文件夹下面,这时就会导致构建出错,解决方法是定义

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
  "configurations": [
    {
      "name": "x64-Debug",
      "generator": "Ninja",
      "configurationType": "Debug",
      "inheritEnvironments": [ "msvc_x64" ],
      "buildRoot": "${workspaceRoot}\\build\\x64-Debug",
      "cmakeCommandArgs": "",
      "ctestCommandArgs": ""
    },
    {
      "name": "x64-Release",
      "generator": "Ninja",
      "configurationType": "Release",
      "inheritEnvironments": [ "msvc_x64" ],
      "buildRoot": "${workspaceRoot}\\build\\x64-Release"
    }
  ]
}

另外还有一种情况就是你的操作系统最大路径没有放开,只支持255长度,这样非常容易出现问题,你可以通过修改组策略编辑器,把路径的最大长度设置为8192

1
2
3
4
5
6
7
按 Win + R 输入 gpedit.msc。

导航到:
计算机配置 > 管理模板 > 系统 > 文件系统
启用 启用 Win32 长路径。

重启系统。

如果还是不行,把项目移动到其他目录下,比如D盘,或者C盘,这样路径长度就变短了,这样问题就解决啦

构建过程中出现moc错误

在编译输出中看到moc相关的错误时,只需要再多几次构建即可,这个问题尤其发生在第一次构建的时候,大批量的moc操作有时会出现异常,只要保留build目录,继续构建即可