在软件开发中,编辑和编译是最基础且必不可少的两个环节。然而,在过去,大多数开发者在进行这两个环节时,常常需要在不同的软件之间来回切换,这不仅效率低下,而且不便于管理。本文将介绍如何通过在VS Code中编辑并直接编译,实现一站式编辑与编译的便捷操作。
为什么需要实现编辑与编译一体化
在传统的开发过程中,开发者通常会使用VS Code等文本编辑器编辑代码,然后使用Keil5等集成开发环境进行编译。这种切换来回的方式不仅繁琐,而且容易导致操作失误,降低开发效率。因此,实现一站式编辑与编译对于提高开发效率和舒适度至关重要。
脚本实现编辑与编译一体化
我们将通过两个脚本实现一站式编辑与编译功能,分别是build.bat
和download.bat
。以下是这两个脚本的详细说明及使用方法:
build.bat
build.bat
脚本用于在Keil5中进行编译操作,并在VS Code终端中显示编译结果。
@echo off
REM Define path variables
set "keil_path=D:\software\Keil_V528\UV4"
set "project_root=D:\Lebaicong\Project\GR-150"
set "project_path=%project_root%\MDK-ARM"
set "build_output=%project_path%\Build_Output.txt"
set "uvprojx=%project_path%\GR-150.uvprojx"
REM Set default build parameter to -b
set "build_param=-b"
REM Check if -all parameter exists
if "%1"=="-all" (
set "build_param=-r"
)
REM Keil build
"%keil_path%\UV4.exe" -j0 %build_param% "%uvprojx%" -o "%build_output%"
REM Use PowerShell to output the build result
powershell -Command "$content = Get-Content '%build_output%' -Encoding UTF8; foreach ($line in $content) { if ($line -match 'warning') { Write-Host $line -ForegroundColor Cyan } elseif ($line -match 'error') { Write-Host $line -ForegroundColor Red } else { Write-Host $line } }"
- 作用: 该脚本用于在VS Code终端中执行Keil5的编译命令,并显示编译结果,并对警告和错误进行高亮显示。
- 使用方法: 用户只需将此脚本保存为
build.bat
文件,并在 VS Code 中打开终端,执行该脚本即可完成编辑与编译的一体化操作。如果需要修改项目路径或其他参数,只需编辑脚本中的相应位置即可。 - 下面我将逐步解释用户如何使用和修改这个脚本:
- 设置路径变量:
- 在脚本的开头定义了一些路径变量,用户需要根据实际情况修改这些变量,确保与其项目的路径一致。
- 将
keil_path
设置为 Keil 软件的安装路径。 - 将
project_root
设置为你的项目根目录。 project_path
设置为项目的 MDK-ARM 目录。build_output
是编译输出结果的文件路径。uvprojx
是 Keil 项目文件的路径。
- 设置默认编译参数:
- 默认情况下,编译参数被设置为
-b
,即只编译改动的部分。 - 如果用户提供了
-all
参数,则编译参数会被设置为-r
,即编译全部文件。
- 默认情况下,编译参数被设置为
- 执行 Keil 编译:
- 使用
%keil_path%\UV4.exe
命令执行 Keil 编译,传入了指定的编译参数和项目文件路径,并将输出保存到指定的输出文件中。
- 使用
- 使用 PowerShell 输出编译结果:
- 使用 PowerShell 读取编译结果文件,并将结果输出到终端。
- 警告会以青色显示,错误会以红色显示。
- 设置路径变量:
download.bat
download.bat
脚本用于在Keil5中进行烧录操作,并在VS Code终端中显示烧录结果。
@echo off
REM Define path variables
set "keil_path=D:\software\Keil_V528\UV4"
set "project_path=D:\Lebaicong\Project\GR-150\MDK-ARM"
set "uvprojx=%project_path%\GR-150.uvprojx"
set "output_file=%project_path%\Prg_Output.txt"
REM Download Keil5 project
"%keil_path%\UV4.exe" -f "%uvprojx%" -o "%output_file%"
REM Display the content of the output file
type "%output_file%"
REM Use PowerShell to output the compilation result
powershell -Command "$content = Get-Content '%output_file%' -Encoding UTF8; foreach ($line in $content) { if ($line -match 'warning') { Write-Host $line -ForegroundColor Cyan } elseif ($line -match 'error') { Write-Host $line -ForegroundColor Red } else { Write-Host $line } }"
-
作用: 该脚本用于在VS Code终端中执行Keil5的烧录命令,并显示烧录结果,并对警告和错误进行高亮显示。
-
使用方法: 打开VS Code终端,运行
download.bat
即可开始烧录。 -
下面我将逐步解释用户如何使用和修改这个脚本:
-
设置路径变量:
- 在脚本的开头定义了一些路径变量,用户需要根据实际情况修改这些变量,确保与其项目的路径一致。
keil_path
:Keil软件的安装路径。project_path
:用户项目的根目录路径。uvprojx
:Keil项目文件的完整路径。output_file
:编译输出结果的文件路径。
-
下载Keil5项目:
- 脚本通过调用
%keil_path%\UV4.exe
命令来执行Keil5项目的下载操作,将项目文件指定为%uvprojx%
,并将输出保存到指定的输出文件中。
- 脚本通过调用
-
显示输出文件内容:
- 使用
type
命令显示输出文件的内容,即显示了项目下载的结果。
- 使用
-
使用 PowerShell 输出编译结果:
- 使用 PowerShell 读取输出文件的内容,并根据其中的警告和错误信息对内容进行颜色标记后输出到终端。
-
用户只需将该脚本保存为download.bat
文件,然后在 VS Code 中打开终端,运行该脚本即可完成下载 Keil5 项目并显示烧录结果的操作。如果需要修改项目路径或其他参数,只需编辑脚本中的相应变量即可。
通过以上两个脚本,我们实现了在VS Code中一站式编辑与编译的功能,大大提高了开发效率和便捷性。
示例
以下以我的工程为例给大家讲解以下如何使用该脚本:
假设我们的工程名为 “GR-150”,并且我们已经在该项目的根目录下创建了一个名为 build.bat
和 download.bat
的脚本,用于编译和烧写项目代码。让我们来看一下如何使用这个脚本:
-
准备工作:
- 确保你的项目代码已经保存,并且你已经在项目根目录下创建了
build.bat
文件。
- 确保你的项目代码已经保存,并且你已经在项目根目录下创建了
-
打开 VS Code:
- 在 VS Code 中打开你的项目文件夹。
-
打开终端:
- 在 VS Code 中,打开终端窗口。
-
运行
build.bat
脚本:- 在终端中输入以下命令并按下回车键:
.\build.bat
- 这将执行
build.bat
脚本,开始进行项目代码的编译。
- 在终端中输入以下命令并按下回车键:
-
运行
download.bat
脚本:- 在终端中输入以下命令并按下回车键:
.\download.bat
- 这将执行
download.bat
脚本,开始进行项目代码的烧写(由于没有接上芯片,所以烧录不成功)。
- 在终端中输入以下命令并按下回车键:
- 查看结果:
- 脚本将在终端中显示编译过程的输出结果,包括警告和错误信息的高亮显示。
通过这个示例,你可以看到如何使用 build.bat
和download.bat
脚本在 VS Code 中便捷地进行项目代码的编译和烧写,从而提高了开发效率和舒适度。
总结
本文介绍了如何通过编写脚本实现在VS Code中实现编辑与编译一体化的功能。通过使用这些脚本,开发者可以在不离开VS Code的情况下完成代码的编辑和编译,提高了开发效率和舒适度。