VSCode运行C程序报错:预启动任务gcc.exe构建失败(退出码-1)
解决VSCode中C程序编译报错(exit code -1)的问题
核心原因
你使用了CS50库的get_string函数,但编译时未链接CS50库,导致gcc编译任务失败,触发exit code -1错误。另外你的代码存在两处小问题,但并非编译失败的直接诱因。
解决步骤
1. 修改VSCode编译任务配置
VSCode默认预构建任务未添加CS50库的链接参数,需手动调整:
- 打开项目下的
.vscode/tasks.json文件(如果没有,按Ctrl+Shift+B,选择"创建tasks.json文件",再选C/C++: gcc.exe 生成活动文件) - 找到
args数组,在末尾添加-lcs50参数,修改后的配置片段如下:"args": [ "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}", "-lcs50" // 新增该行,用于链接CS50库 ],
2. 确认CS50库安装正确
- 确保
cs50.h头文件在gcc的头文件搜索路径中(比如Windows下可放在MinGW的include文件夹) - 确保CS50库文件(如
libcs50.a)在gcc的库文件搜索路径中(比如MinGW的lib文件夹)
3. 优化代码(可选但推荐)
你的代码未使用获取到的name变量,且main函数缺少返回语句,修改后更规范:
#include <stdio.h> #include "cs50.h" int main(void) { string name = get_string("What is your name? "); printf("Hello, %s!\n", name); // 输出获取到的姓名 return 0; // 规范main函数返回值 }
验证修改
保存配置和代码后,按Ctrl+Shift+B重新编译,再运行程序,即可正常获取姓名并输出。
内容的提问来源于stack exchange,提问作者Subin
相关产品推荐
相关产品推荐

