山高疑日近,海阔觉天低

VSCode 配置

参考文献

STM32使用VSCODE编程报未定义标识符

在vscode中编辑、编译、下载Keil工程
一,控件列表
1、C/C++ Advanced Lint  //这个和CLang,CppCheck , Flexelint有关系,没有他就不能代码格式化
2、C/C++ Snippets   //代码格式化
3、C/C++ Extension Pack  //C++基本,需要 C/C++ Themes,C/C++,CMake,CMake Tools
4、Chinese(Simplified)(简体中文)
5、Code Runner
6、GBKtoUTF8  by bukas 不能安装出现重大bug:执行ctrl+x时文件内容和system_stm32f10x.h一摸一样
7、Include Autocomplete
8、Keil Assistant       //keil 插件
9、Rainbow Brackets  //好像不能用了
10、Tabnine Al Autocomplete
12、vscode-icons
13、Remote – SSH① //可以通过ssh打开远程电脑的工作区,注意VScode会给远程专门设置一个插件目录,其插件是独立的,既不是local也不是远程主机的,而是存储在Local一个特殊位置,只为Remote服务
14、Keil Assistant 需要设置MDK路径,两个全部设置为:C:\Keil_v5\UV4\UV4.exe
15、bookmark 书签特别有用
二,关于SSH远程 
Remote – SSH是一个强大的工具,允许您使用安全 SSH 协议在远程服务器或虚拟机上工作。它使您能够直接从远程环境中的本地 VS Code 实例编辑文件、运行命令和调试应用程序,从而提供无缝的开发体验,使用的时候需要注意:
①被登陆的ssh服务器,会在服务器上创建自己的插件目录,如果ssh服务器也安装了VSCode,那么一共有3个插件目录:ssh客户端的,被登录服务器的,服务器VSCode的插件目录
②ssh客户端的插件不一定可以在远程登陆的时候能用,查看插件的时候会发现有2个分类:本地和远程,
③本地的插件在登陆远程的时候不一定能用,会显示灰色,有感叹号提示这个插件要在远程插件目录添加
④并不是所有本地插件都不可用,不是灰色的就能用
三,目录
如下所示1-3是3个安装目录,在每个安装目录都有独立的插件目录
1、Windows安装目录:
C:\Users\{Username}\AppData\Local\Programs\Microsoft VS Code
2、Linux安装目录:
~/.vscode
3、Linux Server安装目录(ssh 远程):
~/.vscode-server,使用一段时间后会变得很大,可以直接删除然后重新安装远程插件
4、C_Cpp: Intelli Sense Cache Path
lntelliSense 会为头文件创建缓存用来提高性能. 默认缓存文件夹
Windows:%LocalAppData%/Microsoft/vscode-cpptools”
Linux:”SXDG CACHE HOME/Vscode-cpptools/”
Linux:”SHOME/.cache/vscode-cpptools/”
Mac: “SHOME/Library/Caches/vscode-cpptools/”
在设置里搜索”C_Cpp.intelliSenseCacheSize” 可以设置其大小,默认是5GB,可以设置成1GB

四,mingw编译器安装(针对STM32开发)

不安装mingw会导致,头文件提示找不到问题
网上直接下载安装:比较慢,有一个下载过程,安装选项选择:C语言的”mingw32-base-bin”,针对C++的”mingw32-gcc-g++bin2个即可
或者直接下载压缩包,在页面 发点击”x86_64-win32-seh
两种方式都需要将mingw/bin添加到系统目录
五,STM32使用VSCODE编程报未定义标识符
在keil里面右击project,选择”option for  **”,在C/C++里面含有预定义宏,比如”STM32F10X_HD, USE_STDPERIPH_DRIVER”
另外vscode还需要把mdk的arm部分头文件提前include进来
修改方式:
用vscode打开一个mdk工程,在右下角有一个”win32″按钮,可以编辑”c_cpp_properties.json”,或者直接在项目根目录有一个.vscode文件夹,修改成如下

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:\\Keil_v5\\ARM\\ARMCC\\include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE",
                "STM32F10X_HD",
                "USE_STDPERIPH_DRIVER"
            ],
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

六,VS配置文件夹.vscode
建议在每个工作文件夹下创建.vscode,并将*.code-workspace保存到里面,如果没有c_cpp_properties.json按下“Crtl+Shift+P”打开 VSCode 的控制台,然后输入“C/C++: Edit configurations(JSON) ”,会生成c_cpp_properties.json,在里面可以添加宏定义,比如“_POSIX_C_SOURCE=199309L“就可以让time函数正常里面有创建“settings.json”文件如下:

{
  "search.exclude": {
     "**/node_modules": true,
     "**/bower_components": true,
  },
  "files.exclude": {
    "**/.git": true,
    "**/.svn": true,
    "**/.hg": true,
    "**/CVS": true,
    "**/.DS_Store": true,
  },
  "files.encoding": "gb18030"
}

search.exclude是查找排除,”**”表示任意文件路径,比如**/.vscode,**/.output等等,注意vscode不支持search.include选项目,而且仅仅只可以搜索当前工作目录,V想要搜索必须在UI设置搜索路径
files.exclude 是文件排除
注意C:\Users\Lee\AppData\Roaming\Code\User 下也有是settings.json如下,他是全局配置,项目目录.vscode中的的settings是单独工作区配置

{
    "workbench.iconTheme": "vscode-icons",
    "tabnine.experimentalAutoImports": true,
    "KeilAssistant.C51.Uv4Path": "C:\\Keil_v5\\UV4\\UV4.exe",
    "KeilAssistant.MDK.Uv4Path": "C:\\Keil_v5\\UV4\\UV4.exe",
    "explorer.confirmDelete": false,
    "editor.fontSize": 18,
    "vsicons.dontShowNewVersionMessage": true,
    "git.enableSmartCommit": true,
    "git.confirmSync": false,
    "diffEditor.ignoreTrimWhitespace": false,
    "cortex-debug.armToolchainPath": "C:\\Program Files (x86)\\GNU Tools ARM Embedded\.4 2016q3\\bin",
    "cortex-debug.JLinkGDBServerPath": "C:\\Program Files (x86)\\SEGGER\\JLink_V490\\JLinkGDBServerCL.exe",
    "git.autofetch": true,
    "workbench.startupEditor": "none",
    "[c]": {
        "editor.defaultFormatter": "ms-vscode.cpptools"
    },
    "git.openRepositoryInParentFolders": "always",
    "c-cpp-flylint.clang.includes": [],
    "remote.SSH.remotePlatform": {
        "Ubuntu20.4": "linux"
    },
    "qtConfigure.qtDir": "/opt/qt5.12.7_ssd",
}

C:\Users\Lee\AppData\Roaming\Code\User\keybindings.json 按键绑定,按键绑定备份

七,QT嵌入式开发额外配置

1、c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/opt/Qt5.12.12/5.12.12/gcc_64/include",
                "/opt/Qt5.12.12/5.12.12/gcc_64/include/QtWidgets",                
                "/opt/Qt5.12.12/5.12.12/gcc_64/include/QtGui",
                "/opt/Qt5.12.12/5.12.12/gcc_64/include/QtCore",
                "/home/lee/project/build/M2200A-I_MX6Uzlg-Release/ui"
            ],
            "defines": ["_POSIX_C_SOURCE=199309L","__USE_XOPEN"],//_POSIX_C_SOURCE 为了让很多不识别函数/变量识别,__USE_XOPEN strftime
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

c_cpp_properties.json windows端

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
               
               // "/opt/Qt5.12.12/5.12.12/gcc_64/include/QtGui",
                //"/opt/Qt5.12.12/5.12.12/gcc_64/include/QtCore",

                "D:/Qt/Qt5.12.12/5.12.12/mingw73_32/include",
                "D:/Qt/Qt5.12.12/5.12.12/mingw73_32/include/QtWidgets",                
                "D:/Qt/Qt5.12.12/5.12.12/mingw73_32/include/QtGui",
                "D:/Qt/Qt5.12.12/5.12.12/mingw73_32/include/QtCore",
                "D:/Qt/Qt5.12.12/Tools/mingw730_32/lib/gcc/i686-w64-mingw32/7.3.0/include/c++/ext"
                //"/home/lee/project/build/M2200A-I_MX6Uzlg-Release/ui"
            ],
            "defines": ["_POSIX_C_SOURCE=199309L","__USE_XOPEN","UNICODE"],//_POSIX_C_SOURCE 为了让很多不识别函数/变量识别,__USE_XOPEN strftime
            "compilerPath": "D:/Qt/Qt5.12.12/Tools/mingw730_32/bin/gcc.exe",
            "cStandard": "c17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

八,VSCode删除
win+R 打开运行,输入 %appdata% 回车,删除 Code 文件夹和 Visual Studio Code 文件夹;
win+R 打开运行,输入 %userprofile% 回车,删除 .vscode 文件夹。

赞(0) 打赏
未经允许不得转载:Mr.Zhang » VSCode 配置

你的打赏是我的动力

登录

找回密码

注册