解决vscode编写C++分文件运行显示undefined reference to...问题

文章讲述了在VSCode中编写多个.cpp和.h文件时遇到的undefinedreference错误,原因是VSCode默认只编译main函数所在的文件。解决方法是在tasks.json和settings.json中配置编译所有cpp文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

用vscode写多个.cpp文件和.h文件,在运行时报错,显示undefined reference to…。
运行报错:
在这里插入图片描述
文件结构:
在这里插入图片描述
function.h:

#include <iostream>
using namespace std;

void Function_Select();

function.cpp:

#include "function.h"

void Function_Select()
{
    int select = 0;
    cout << "请选择功能!" << endl;
    cin >> select;
    switch (select)
    {
    case 1: //1.添加联系人
        break;
    case 2: //2.显示联系人
        break;
    case 3: //3.删除联系人
        break;
    case 4: //4.查找联系人
        break;
    case 5: //5.修改联系人
        break;
    case 6: //6.清空联系人
        break;
    case 0: //0.退出通讯录
        cout << "已退出!" << endl;
        exit(0);//已退出
        break;
    default:
        break;
    }
}

show.h:

#include <iostream>

using namespace std;

void Show_Menu();

show.cpp:

#include "show.h"

void Show_Menu()
{
    cout << "************************" << endl;
    cout << "***** 1.添加联系人 *****" << endl;
    cout << "***** 2.显示联系人 *****" << endl;
    cout << "***** 3.删除联系人 *****" << endl;
    cout << "***** 4.查找联系人 *****" << endl;
    cout << "***** 5.修改联系人 *****" << endl;
    cout << "***** 6.清空联系人 *****" << endl;
    cout << "***** 0.退出通讯录 *****" << endl;
    cout << "************************" << endl;
}

正常来说我这样写是没问题的,排除代码保存问题,问题出在vscode上。
因为vscode编译时只对main函数文件进行编译(设置的),编写的其他.cpp没被编译,所以报错说自定义的函数未定义。

解决方案:

第一步:

在tasks.json中将${file}改成 ${fileDirname}\*.cpp

在这里插入图片描述

第二步:

打开设置(左下角)在搜索栏中输入Code Runner然后选择在setting.json中编辑

在这里插入图片描述

将$fileName改成*.cpp

在这里插入图片描述
这样就可以运行多个.cpp文件了。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿友不胖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值