构建过程常见错误
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
| 按 Win + R 输入 gpedit.msc。
导航到:
计算机配置 > 管理模板 > 系统 > 文件系统
启用 启用 Win32 长路径。
重启系统。
|
如果还是不行,把项目移动到其他目录下,比如D盘,或者C盘,这样路径长度就变短了,这样问题就解决啦
构建过程中出现moc错误
在编译输出中看到moc相关的错误时,只需要再多几次构建即可,这个问题尤其发生在第一次构建的时候,大批量的moc操作有时会出现异常,只要保留build目录,继续构建即可