相信大家作为一个程序员都有自己所钟爱的编辑器和编译器,但是有一点是肯定的,并不是所有的编辑器都是适合自己的。有人或许会问windows选择编辑器还需要纠结吗,做嵌入式的用keil,玩x86的就用visual stdio。没错这两款编辑器基本满足了我们开发者的需求,但是一方面,虽然KEIL做没有操作系统的ARM开发是很香,集编辑编译软硬件调试工程管理为一体,但是嵌入式做到深处到了操作系统这个层次KEIL基本就没什么软用了。
在过去的很长一段时间里,我都在急切的寻找这一款一方面看起来很牛逼,而且可以很省心的IDE,然后我找到了,他叫VSCODE,是我目前发现的最适合我的编辑器。
为什么要叫他半开放,这个编译器并没有向程序员隐藏技术细节,一开始这个只是一个简单的文本代码编辑器,类似于NOTEPAD之类东西,但是程序员可以按照自己的喜好去配置适合自己的开发环境。使他成为一个可以个人定制的IDE。
很久之前我就说过当在使用KEIL,和visual studio的时候明显有一种被人安排了的感觉,没错就是被安排了,我们所做的就是简单的敲一敲代码,然后按一下F5,这种事情找一个非程序员人学习一段时间相信也可以熟练的使用。但是在vscode里面所有的编译命令都是自己用类似于LINUX命令行的方式敲出来的,为了简便我们还可以使用脚本快捷编译。
这是我下载完插件以后的情况,是不是看起来就有想撸代码的欲望。
在vscode的内嵌命令行里你可以体验到LINUX操作的感觉。
我不知道什么算快,反正他的开机时间是visual stdio的三分之一。
内嵌了github的常见操作,再也不用为记不住命令行而烦恼了
这就是装插件了。
把这些插件装上基本就没问题了
1)、C/C++,这个肯定是必须的。
2)、C/C++ Snippets,即 C/C++重用代码块。
3)、C/C++ Advanced Lint,即 C/C++静态检测 。
4)、Code Runner,即代码运行。
5)、Include AutoComplete,即自动头文件包含。
6)、Rainbow Brackets,彩虹花括号,有助于阅读代码。
7)、One Dark Pro,VSCode 的主题。
8)、GBKtoUTF8,将 GBK 转换为 UTF8。
9)、ARM,即支持 ARM 汇编语法高亮显示。
10)、Chinese(Simplified),即中文环境。
11)、vscode-icons,VSCode 图标插件,主要是资源管理器下各个文件夹的图标。
12)、compareit,比较插件,可以用于比较两个文件的差异。
13)、DeviceTree,设备树语法插件。
装上这些对于嵌入式应用就够了。
改语言,虽然英文看起来更专业,但是好像还是中文开发环境更舒服。
按下“Ctrl+Shift+P”打开搜索框,在搜索框里面输入“config”,然后选择“Configure Display Language”,在打开的 local.json 文件中将 locale 修改为 zh-cn。
这个比较麻烦一点,首先必须配置一下环境变量。让命令行可以识别gcc,g++命令这个涉及到安装编译器。但是如果你之前安装过其他编译器的话那就不用这么麻烦了。
因为之前安装过QT直接就用QT来干活了
这样就OK了,然后你的vscode就可以直接使用命令行了。
gcc命令行相信都会敲,但是只用一个文件还算简单,可是当你要管理更多的文件的时候,就不太方便了好在vscode 有自己管理方式。
这是我一个数值计算项目的目录结构,要完成配置只需要,配置.vscode文件夹下的两个脚本文件即可。
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
"args": ["-I../include"], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录
"environment": [],
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"MIMode": "gdb",
"miDebuggerPath": "E:\\QT\\QTCreater\\Tools\\mingw530_32\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
"preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
{
"version": "2.0.0",
"command": "g++",
"args": ["-g","${file}","-I./include","-o","${fileBasenameNoExtension}.exe"], // 编译命令参数
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceFolder}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
此外应该修改设置脚本
"code-runner.executorMap": {
"cpp": "cd $dir && g++ -g ./*.cpp -fpermissive -I../include -o test && ./test"
},
"code-runner.respectShebang": false,
"code-runner.runInTerminal": true
在配置脚本末尾gcc编译命令。
配置完成点击右上角三角形即可运行,点击F5可以调试。
如果需要配置类似于opencv和qt的动态库的话在命令行中添加链接头文件的库文件的选项即可。但是如果程序要单独运行,需要在同级目录有库文件。