VSCode使用Makefile Tools插件开发C/C++程序

这篇具有很好参考价值的文章主要介绍了VSCode使用Makefile Tools插件开发C/C++程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提起Makefile,可能有人会觉得它已经过时了,毕竟现在有比它更好的工具,比如CMake,XMake,Meson等等,但是在Linux下很多C/C++源码都是直接或者间接使用Makefile文件来编译项目的,可以说Makefile是基石。

另外,针对C++ 20的一些特性,像比较流行的CMake工具,目前支持还不完善,如果想要尝鲜C++ 20的一些新特性,比如Module,目前最好是使用Makefile比较方便。后面笔者会专门介绍C++ 20的Module使用。

微软官方出了一个VSCode的Makefile Tools插件,用于编译、调试、运行C/C++程序。

笔者以一个简单的示例来介绍它。

如果是Windows,则需要安装MSYS2 MinGW,然后在Windows下配置PATH环境变量,包含MinGW64的gcc以及MSYS2的make路径,比如:
G:\msys64\mingw64\binG:\msys64\usr\bin

在工作区编写一个C++文件, main.cc

#include <stdio.h>

int main(int argc, char*argv[]) {
	printf("测试\n");
	return 0;
}

再编写一个Makefile文件:

.PHONY: all clean

CC := gcc
CXX := g++
CFLAGS :=
CXXFLAGS := -gdwarf-4
Target := main

SRCS += $(wildcard *.cc)
OBJS := $(patsubst %.cc, %.o, ${SRCS})

all: $(Target)

$(Target): $(OBJS)
	$(CXX) $(CXXFLAGS) $(OBJS) -o $@

%.o: %.cc
	$(CXX) $(CXXFLAGS) -c $? -o $@

clean:
	rm -rf $(OBJS) $(Target)

在工作区编写的了Makefile后,VSCode输出窗口Makefile Tools会有一系列日志:

No current configuration is defined in the workspace state. Assuming 'Default'.
No target defined in the workspace state. Assuming 'Default'.
Dropping various extension output files at c:\Users\admin\AppData\Roaming\Code\User\workspaceStorage\9d677e46e192d47afa37529f2e89bbe9\ms-vscode.makefile-tools
Logging level: Normal
Configurations cached at c:\Users\admin\AppData\Roaming\Code\User\workspaceStorage\9d677e46e192d47afa37529f2e89bbe9\ms-vscode.makefile-tools\configurationCache.log
No path to the makefile is defined in the settings file.
No folder path to the makefile is defined in the settings file.
Always pre-configure: false
Always post-configure: false
Dry-run switches: '--always-make', '--keep-going', '--print-directory'
No current launch configuration is set in the workspace state.
Default launch configuration: MIMode = undefined,
                    miDebuggerPath = undefined,
                    stopAtEntry = undefined,
                    symbolSearchPath = undefined
Configure on open: true
Configure on edit: true
Configure after command: true
Only .PHONY targets: false
Save before build or configure: true
Build before launch: true
Clear output before build: true
Ignore directory commands: true
compile_commands.json path: null
Deduced command 'make.exe ' for configuration "Default"
The Makefile Tools extension process of configuring your project is about to run 'make --dry-run' in order to parse the output for useful information. This is needed to calculate accurate IntelliSense and targets information. Although in general 'make --dry-run' only lists (without executing) the operations 'make' would do in the current context, it is still possible some code to be executed, like $(shell) syntax in the makefile or recursive invocations of the $(MAKE) variable.
If you don't feel comfortable allowing this configure process and 'make --dry-run' to be invoked by the extension, you can chose a recent full, clean, verbose and up-to-date build log as an alternative, via the setting 'makefile.buildLog'. 

并且会弹出对话框:

vscode makefile tools 插件,Windows,IDE,# C/C++,vscode,c语言,c++,Makefile,Tools,Module,乱码

点“确定”即可。

此时Makefile面板如下:
vscode makefile tools 插件,Windows,IDE,# C/C++,vscode,c语言,c++,Makefile,Tools,Module,乱码

我们需要设置生成目标启动目标,在其后点笔那个的图标按钮,则会弹出所有目标,生成目标如下,选择all

vscode makefile tools 插件,Windows,IDE,# C/C++,vscode,c语言,c++,Makefile,Tools,Module,乱码

启动目标如下,只有一个,选择它:
vscode makefile tools 插件,Windows,IDE,# C/C++,vscode,c语言,c++,Makefile,Tools,Module,乱码
设置好后,如下图:
vscode makefile tools 插件,Windows,IDE,# C/C++,vscode,c语言,c++,Makefile,Tools,Module,乱码
右上边有三个按钮,分别是编译调试运行
需要注意的是编译是使用的VSCode的shell类型任务执行的,如果如解决Windows下VSCode控制台乱码问题中所述,添加了VSCode的控制台启动参数,则可能会失败,需要去掉参数再执行,结果如下:

vscode makefile tools 插件,Windows,IDE,# C/C++,vscode,c语言,c++,Makefile,Tools,Module,乱码
调试按钮,VSCode会使用cppdbg引擎启动gdb进行调试,UTF8中文可以正常显示。
vscode makefile tools 插件,Windows,IDE,# C/C++,vscode,c语言,c++,Makefile,Tools,Module,乱码文章来源地址https://www.toymoban.com/news/detail-815087.html

到了这里,关于VSCode使用Makefile Tools插件开发C/C++程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 沁恒 CH32V208(三): CH32V208 Ubuntu22.04 Makefile VSCode环境配置

    沁恒 CH32V208(一): CH32V208WBU6 评估板上手报告和Win10环境配置 沁恒 CH32V208(二): CH32V208的储存结构, 启动模式和时钟 沁恒 CH32V208(三): CH32V208 Ubuntu22.04 Makefile VSCode环境配置 沁恒 CH32V208(四): CH32V208 网络DHCP示例代码分析 沁恒 CH32V208(五): CH32V208 运行FreeRTOS示例的说明 CH32V208WBU6 评估板

    2024年02月02日
    浏览(19)
  • vscode显示函数列表插件 - AZ AL Dev Tools/AL Code Outline

    官网: AZ AL Dev Tools/AL Code Outline - Visual Studio Marketplace 此扩展最初被命名为“AL 代码大纲”,因为它最初是 AL 代码大纲面板,从中可以在 AL 语法节点上运行不同的代码生成器。每个新版本都在添加新功能,其中一些不再与 AL 代码大纲面板相关。扩展的当前版本是不同 al 开发

    2024年01月23日
    浏览(46)
  • Linux下使用VScode开发ROS时clangd插件的使用

    本人在最近刚开始接触Linux和ROS开发,在开发过程中发现,微软的C/C++的intelliSense的代码补全,纠错等功能是真的难用,恰好有学长跟我提起了clangd这个东西,而且以前用clion去写一些小的C/C++工程,想着怎么去配置一下在vscode上使用clangd,让自己写代码更舒服一些(主要是太

    2024年02月02日
    浏览(15)
  • 【必备】用VSCode开发Vue程序必备插件之一Vue Language Features (Volar)

    通过安装该插件 才能通过赚到编辑器中的符号 Vue Language Features 是为 Vue、Vitepress 和 petite-vue 构建的语言支持扩展。这是基于@vue/reactivity按需计算一切,实现原生 TypeScript 语言服务级别性能。 [温馨提示] 创建 vue 维特斯 娇小的 vue3-eslint-stylelint-demo(Volar + ESLint + stylelint + husk

    2024年02月05日
    浏览(22)
  • 使用VSCode clangd插件进行linux内核代码阅读和嵌入式开发

    在进行 Linux 内核代码阅读和嵌入式开发时,选择合适的开发工具至关重要。VSCode 是一个流行的跨平台编辑器,并且它的扩展生态系统非常强大。在这篇博客中,我们将介绍如何使用 VSCode Clangd 插件来提高 Linux 内核代码的阅读和嵌入式开发效率。 Clangd 是一个基于 Clang 的语言

    2024年02月09日
    浏览(25)
  • 使用VSCode的 Dev Containers 插件搭配Docker 容器进行开发环境的搭建

    需要安装插件 https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers 安装Docker 这样做的好处 每一个项目可以运行一个容器,在容器内开发,相关之间node环境隔离,彻底解决本地包版本依赖关错乱问题 共用宿主机的git 配置, 如果用的是 alpine 版本的镜像,则没有

    2024年01月21日
    浏览(43)
  • 编程辅助插件BitoAI使用指南(以VSCode开发环境为例安装并使用BitoAI插件从而提高生产效率)

    2023年是AI爆发元年,已经被各种AI工具、新闻轰炸了几个月,只有一种感觉:时间不够用! 本插件使用与ChatGPT相同的模型!目前免费,且拥有强大的辅助能力,可以数倍提升程序开发能力,并大大提高开发效率。 Bito AI使编写代码、理解语法、编写测试用例、解释代码、评论

    2023年04月25日
    浏览(17)
  • 【Tools】如何在VSCode上使用C++ 保姆教程

    VSCode(Visual Studio Code)是一款轻量级的代码编辑器,拥有丰富的插件生态系统,支持多种语言开发。在本文中,将介绍如何在 VSCode 中配置 C++ 环境,以便于开发和调试 C++ 代码。 VSCode 具有以下优势: 轻量级:相比于其他 IDE,VSCode 占用的资源更少,启动更快。 插件丰富:

    2024年02月09日
    浏览(18)
  • 使用vscode开发小程序项目

    这里的创建使用用vue3+ts版本,如过是vue2,具体可参考官网命令 uni-app官网 首先创建uni-app 需要再vscode中下载uni-app插件,以方便开发 uni-create-view 快速常见uni-app页面 uni-helper uni-app代码提示 uniapp小程序扩展 鼠标悬停查看文档 安装ts声明校验 安装 类型声明文件 配置 tsconfig.jso

    2024年02月02日
    浏览(19)
  • Go使用vscode开发,必备的插件及最常用快捷键和代码自动补全

    为进行Markdown文档编写提供很多快捷键和自动补全功能,使vscode可以完全代替Typora。 边写边看到Markdown渲染之后的样子,在 Preview 界面按住鼠标右键可以打开功能栏,选择Open in Browser可以将文件在浏览器打开,还可以选择生成HTML或者PDF等。 在Markdown中快捷插入图片,复制图片

    2024年03月10日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包