Vs code 02 配置非标准的C、C++的编译环境

 2023-09-07 阅读 19 评论 0

摘要:前言:自从微软收购了github之后Vs Code似乎越来越强... 而现在蜂拥而起的国内MCU的芯片商们,往往没有MD等的定制化的IDE 这个例子,我一步一步,从头开始,尝试用VS code 代替MD5 进行一个新的嵌入式系统【Melexis】的编译环境构建。 1 配置编

前言:自从微软收购了github之后Vs Code似乎越来越强...

而现在蜂拥而起的国内MCU的芯片商们,往往没有MD等的定制化的IDE

这个例子,我一步一步,从头开始,尝试用VS code 代替MD5 进行一个新的嵌入式系统【Melexis】的编译环境构建。


1 配置编译器:

1.1 下载

编译器用MinGW,可以自己去网站下源码,也可以用已经编译好的,这里面,下面这个链接是已经编译好的可以下载。

标准C库。链接: https://pan.baidu.com/s/1EhmVd97xFRtfy3V3sJzQlg

提取码: qghe

1.2 安装

下载后,把下载好的mingw64的路径加到windows系统路径:

如图:

vscode配置c语言环境? 并在【bin】,用【shirt + 鼠标右键】打开windows PowerShell确认一下。

 

 出现版本信息,配置成功


2 配置VScode

如图,根据你打开的问题,VSCODE会自动推荐插件


vs code能代替vs用么??出错:

由于我的源码是嵌入式的系统【肯定不是桌面系统,也不是ARM,有专用的编译器】

现在,如果我们就那一个简单的C源码去直接启动调试,会报错:

首先的问题,这里报错的原因是头文件不对。

vscode怎么样?

Vs code会自动更新配置状况,并尝试重新编译,

同时在输出窗口,提示我们现在的intellisense模式选型的windows-msvc-x64的编译器不对,

C11标准、由于,现在使用的嵌入式系统的编译器和gcc嵌入式一致,因此,我们改一下,

这样之前的非兼容性报错没有了,当然,问题列表里面,找不到文件的事情还是存在的。

这个配置的结果,最终会给到【launch.json】这个配置文件。该文件主要是编译环境和调试环境配置。

小结:本例展示了对一个新的嵌入式系统,我们将如何更改他的编译环境。

vscode基本使用?However, for most debugging scenarios, creating a launch configuration file is beneficial because it allows you to configure and save debugging setup details. VS Code keeps debugging configuration information in a launch.json file located in a .vscode folder in your workspace (project root folder) or in your user settings or workspace settings.


但是,大多数的嵌入式系统,除了用IDE来进行编译外,很多开源的是用Make的方式来进行,对这种模式,Vscode提供了另外一个机制TASK:

VS Code can talk to a variety of external tools

 命令行的一些开源工具,如何整合到VScode?

These tools are mostly run from the command line and automate jobs inside and outside the inner software development loop (edit, compile, test, and debug). Given their importance in the development life cycle, it is helpful to be able to run tools and analyze their results from within VS Code. Tasks in VS Code can be configured to run scripts and start processes so that many of these existing tools can be used from within VS Code without having to enter a command line or write new code. Workspace or folder specific tasks are configured from the tasks.json file in the .vscode folder for a workspace.

tasks.json,需要如上绿色所示,在[.vscode]文件夹构建一个tasks.json的配置文件:

VS code。官网的举例,这里tasks.json的名字是可以任意修改的。


现在我们来用原来的源码做一个makefile的栗子:

通过刚才的设定,我们有如下这些源码结构:

这是一个标准的gcc的makefile编译结构,包括,一个源文件main.c,一个Makefile,传统的编译,就是在命令行里面,敲入make命令,就可以生成你要的执行文件。现在我们看看能不能把他配置到Vscode里面。

code怎么用?刚才我们已经说了,官网是直接新建一个文件夹+json的文件,

这里,我们用[shift]+[ctrl]+[p]打开顶部的命令行对话框,输入 task,

选择,配置默认任务【生成的任务】

 

自动生成task.json

{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: gcc.exe 生成活动文件","command": "H:\\工作\\mingw64\\bin\\gcc.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"}]
}

这里面有一个依据编译器的默认执行任务:【H:\\工作\\mingw64\\bin\\gcc.exe】

用[shift]+[ctrl]+[p]再次打开顶部

输入: task,然后,选择 【Run Task】

 然后选择要执行的任务,我们这里是编译,Cppbuild,

 这时候,会执行编译:

在【终端】窗口:

可以,看到在

(30条消息) VS code 调试配置01 Debugging_山云的专栏-CSDN博客
中设定的编译参数,这里都被执行了。


 OK,现在正式搞事情,

我们看我们的Makefile里面定义:

# Main rules
.PHONY: all
all: start $(TARGET).elf $(TARGET).hex $(TARGET).lss end$(TARGET).elf : $(OBJS) $(LIBDIR)/lib$(PROFILE).a $(LD_SCRIPT)$(CC) $(OBJS) -o $@ $(LDFLAGS).PHONY: clean
clean:-$(RM) $(OBJDIR) *.MDS *.cod-$(RM) $(TARGET).map $(TARGET).lss $(TARGET).elf-$(RM) $(TARGET).hex $(TARGET)_APP.hex

这个Makefile,里面定义了两个功能执行参数,all,clean,

我们然后,我们把这个和VS的task联系起来,

先重新编辑一下tasks.json,

 注意:makefile的参数直接写,不需要写到args的列表里面,编辑后,需要重新启动Vscode.

{"version": "2.0.0","tasks": [{"label": "buildTarget","command": "make all",//"args": ["all"],"type": "shell"},{"label": "CleanTarget","command": "make clean",//"args": ["clean"],"type": "shell"}]}

重新启动后,之前默认的命令参数变成我们的make命令。 

然后,我们选择【终端】

【运行任务】里面有我们刚才定义的两个make命令,buildtarget和Cleantarget.

点击一下,他有一个可能的风险提示,

我们不管继续执行,

可以看到,在终端输出了make 的结果,里面的打印信息是Makefile文件里面的东西。

这样,我们就将Makefile,绑定在Vscode的环境里面。


可能出现的问题:

调整task.json后,最好是重新关闭并启动一下VScode,以免之前的task.json的定义会影响。 


小结:用Vscode执行makefile,感觉有点费劲,本来命令行的执行就好,写了很多配置,还是命令行的执行和结果,我想唯一的好处就是给对makefile不熟悉,系统不熟悉的人做的。也许方便未来的客户支持和调试吧。


参考:

(18条消息) VsCode安装和配置c/c++环境(超完整,小白专用)_黄化的多多-CSDN博客

Debugging in Visual Studio Code

​​​​​​Tasks in Visual Studio Code

(29条消息) VSCode 结合Makefile设置调试方法_gbmaotai的博客-CSDN博客

(30条消息) VS code 调试配置01 Debugging_山云的专栏-CSDN博客

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/15198.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息