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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 13:42:22