vscode快捷键编译运行c++project(windows10)

简介: vscode快捷键编译运行c++project(windows10)


一 问题描述


在环境配置没有问题的前提下创建了c++project,主程序不包含其他目录下的程序情况下使用快捷键编译可以正常编译成功并生成可执行文件,但是包含了其他目录下的文件以后就会报错。该文章就是为了解决这种包含了其他目录文件情况下无法使用快捷键编译的问题。


二 前提,安装MinGw环境:


https://code.visualstudio.com/docs/cpp/config-mingw


三 问题复现


在桌面建立一个project文件,文件夹组成如下:

1 新建工作空间文件夹:workspace;

2 进入workspace文件夹新建src;

3 进入src,新建project;

4 进入project后再新建一个hiworld文件夹。

使用vscode打开该文件夹:如图

image.png

workspace目录树

5 在各个目录新建测试文件:

image.png

测试程序文件分布

mian.cpp

#include "hiworld/hi.h"
int main(int argc, const char** argv) {
    std::cout<<"hdsjhdk"<<std::endl;
    HI hh;
    return 0;
}

hi.h

#pragma once
#include<iostream>
class HI
{
private:
    /* data */
public:
 HI(/* args */);
 ~HI() = default;
};

hi.cpp

#include "hi.h"
HI::HI(){
    std::cout<<"this is a hi class !"<<std::endl;
}

6 至此会出现的错误(非本文关注重点)

按照上述操作建立完成程序文件以后会提示无法找到c++一些的函数(头文件出现红色波浪线)。

image.png

报错提示

这问题是因为没有为程序配置c++编译环境,解决方法如下:

  • ctrl+shift+p,选择select intellisence configuration;

image.png

ctrl+shift+p后出现的

  • 然后选择g++对应的编译环境;

image.png

选择use g++.exe

  • 按照上述操作以后程序中包含的库函数就不会再出现红色波浪线的错误

image.png

配置好后会出现的文件夹和jason文件

7 使用快捷键编译程序(会出错)

点击main.cpp 在main.cpp文件下开始编译程序。

image.png

在上图状态下选择最右侧的运行键选择第三个配置g++编译器

image.png

选择g++编译器进行编译

image.png

错误出现

image.png

函数未定义

按照上述的操作就会出现函数未定义的情况,但是这些函数我们在编码过程中都进行了实现。上述流程是建立一个c++project会有的。但是在vscode中如果使用快捷键编译就一定会报错。


四 解决方法

  • 错误原因:快捷键进行编译时会默认生成一个tasks.json文件,但该文件中的编译命令只包含了main.cpp,没有包含其他文件下需要的.cpp文件,所以才会出现函数未定义的情况。
  • 解决办法:找到需要包含的cpp文件,并复制它的路径,加入tasks.json中。

image.png

路径复制

image.png

路径粘贴

按照上述操作把路径添加到tasks.json中对应的地方并保存,而且粘贴的路径中用的是“\\”。

  • 编译运行:再次尝试编译运行程序,可以看到正常的打印出了main中的信息以及其他文件中实现时输出的打印信息.

image.png

最终结果

五 总结

一句话:出现上述快捷键编译无法通过且提示undefined reference ***的情况,把对应cpp文件的路径复制后粘贴到tasks.json下的"${file}"与“-o”之间就可以了。

相关文章
|
7月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
1685 2
|
7月前
|
IDE 编译器 开发工具
msvcp100.dll,msvcp120.dll,msvcp140.dll,Microsoft Visual C++ 2015 Redistributable,Visual C++ 运行库安装
MSVC是Windows下C/C++开发核心工具,集成编译器、链接器与调试器,配合Visual Studio使用。其运行时库(如msvcp140.dll)为程序提供基础函数支持,常因缺失导致软件无法运行。通过安装对应版本的Microsoft Visual C++ Redistributable可解决此类问题,广泛应用于桌面软件、游戏及系统级开发。
910 2
|
8月前
|
并行计算 C++ Windows
|
10月前
|
Linux 虚拟化 iOS开发
VMware Fusion 13.6.4 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
VMware Fusion 13.6.4 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
1312 3
|
监控 搜索推荐 开发工具
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
3047 2
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
|
人工智能 数据处理 C#
AI Dev Gallery:微软开源 Windows AI 模型本地运行工具包和示例库,助理开发者快速集成 AI 功能
微软推出的AI Dev Gallery,为Windows开发者提供开源AI工具包和示例库,支持本地运行AI模型,提升开发效率。
1016 13
|
算法 关系型数据库 测试技术
WHQL微软驱动签名方案,让驱动程序在Windows系统流畅运行
WHQL认证(Windows徽标认证)是微软设立的严格测试标准,旨在确保驱动程序的兼容性、稳定性和互通性。本文介绍了三种WHQL微软驱动签名方案:单系统签名、多系统签名和硬件兼容性测试方案,分别满足不同开发商的需求。通过WHQL认证,不仅能消除Windows安装警告,提升用户体验,还能获得“Designed for Windows”徽标授权,入列全球Windows Catalog及HCL产品表,提升品牌权威性和采购优先权。此外,访问微软OCA可获取错误反馈,助力产品质量改进。选择合适的签名方案,让驱动在Windows系统中流畅运行!
|
编译器 C++ 开发者
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。
|
编译器 C++ 容器
【c++11】c++11新特性(上)(列表初始化、右值引用和移动语义、类的新默认成员函数、lambda表达式)
C++11为C++带来了革命性变化,引入了列表初始化、右值引用、移动语义、类的新默认成员函数和lambda表达式等特性。列表初始化统一了对象初始化方式,initializer_list简化了容器多元素初始化;右值引用和移动语义优化了资源管理,减少拷贝开销;类新增移动构造和移动赋值函数提升性能;lambda表达式提供匿名函数对象,增强代码简洁性和灵活性。这些特性共同推动了现代C++编程的发展,提升了开发效率与程序性能。
497 12