VSCode实现C++代码提示语法高亮编译和调试
Posted 岬淢箫声
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VSCode实现C++代码提示语法高亮编译和调试相关的知识,希望对你有一定的参考价值。
众所周知,目前Microsoft Visual Studio 系列还不能迁移到Linux系统,MacOS只能凑和着用用,而且Visual Studio 2017的安装包的体积增长到了27GB以上,安装空间需求70GB以上的空间,一个小巧灵活的VS Code对于C++开发者而言更加实用。
一、开发环境
软件列表如下:
1. Windows Software Development Kit 10.0.15063
2. Microsoft Visual C++ Build Tools 2015
3. Microsoft Visual Studio Code
4. Cppcheck 1.8
5. LLVM 5.0
6. CMake 3.9
Windows SDK的下载地址是:https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk。
Microsoft Visual C++ Build Tools 2015 的下载地址是:http://landinghub.visualstudio.com/visual-cpp-build-tools,此安装包含Windows SDK 8.1和 Windows SDK 10.0.10240,因版本过时,不建议安装。
Microsoft Visual Studio Code的下载地址是:https://code.visualstudio.com/?wt.mc_id=DX_841432。
Cppcheck 1.8的下载地址是:http://cppcheck.sourceforge.net/。这个工具对于C++代码检查、代码提示非常有帮助。安装过程结束后把工具的安装位置加入Path环境变量。
LLVM 5.0的下载地址是:http://releases.llvm.org/download.html。LLVM自带的CLang工具对代码自动格式化非常有帮助。此外LLVM也是一款很好用的编译套件,以后也用的上。安装过程结束后把工具的安装位置加入Path环境变量。
CMake 3.9的下载地址是:https://cmake.org/download/。CMake是一套自动编译工具,它提供可视化的图形界面,自动生成适用于各种编译平台的Makefile。VS Code的C++编译套件对它有依赖。虽然下文用的是NMake,但CMake留着也不错。安装过程结束后把工具的安装位置加入Path环境变量。
安装顺序按照以上列出软件的顺序进行。
二、配置VS Code
VS Code当前版本没有C++开发功能,自动提示、代码高亮、编译并调试这三大核心功能都需要配置,插件列表也没有Qt开发相关。所以总体实现思路是首先qmake生成Makefile,然后NMake去编译,最后是Windows SDK的CDB调试器Debug生成结果。微软的Visual C++博客团队写过几篇文章引导用户使用VS Code开发C++应用程序,链接如下:https://code.visualstudio.com/docs/languages/cpp。文章没有中文版本,介绍的方法虽然大部分可用,但是用到的某些VS Code插件已经找不到了。
第一步:安装cpp-pack插件。如下图所示:
第二步:安装codecpp-full插件,如下图所示:
第三步:卸载C/C++ Advanced Lint,这个插件跟新版本的VS Code有冲突,会导致整个C++开发工作无法进行下去。如下图所示:
三、验证VSCode 的C++开发功能
第一步:工作目录。
新建一个文件夹,取名为test。
第二步:用VS Code打开工作目录
第三步:配置C++开发环境
点击Tasks->Configure Default Build Task菜单,把task.json改成:
"version": "2.0.0",
"tasks": [
"taskName": "test build",
"type": "shell",
"command": "$workspaceRoot/build.bat",
"group":
"kind": "build",
"isDefault": true
]
第四步:新建build.bat
写入build命令行:
@echo off
title test build command
set VCINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC
set QTDIR=C:\\Qt\\Qt5.9.1\\5.9.1\\msvc2015_64
set PATH=%PATH%;%QTDIR%\\bin
call "%VCINSTALLDIR%\\vcvarsall.bat" amd64
nmake
第五步:编写Makefile。
关于Makefile的编写规则请参照微软编写的《NMAKE Reference》。下面是当前测试工程需要用到的Makefile代码:
CFLAGS=
CPPFLAGS=/D "_WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_CRT_SECURE_NO_WARNINGS" /D "_UNICODE" /D "UNICODE"
LDFLAGS=/LIBPATH:debug/
LIBS=user32.lib kernel32.lib comctl32.lib
OBJS=main.obj
default: TEST_EXE TEST_DLL
TEST_EXE: $(OBJS)
@if not exist debug ( mkdir debug )
@link /nologo /DEBUG /MACHINE:X64 /MANIFEST:NO /OUT:debug\\test.exe /PDB:debug\\test.pdb /SUBSYSTEM:CONSOLE $(LDFLAGS) $(OBJS) $(LIBS)
@echo generate executable files finished.
TEST_DLL: $(OBJS)
@if not exist debug ( mkdir debug )
@link /nologo /DEBUG /DLL /MACHINE:X64 /MANIFEST:NO /OUT:debug\\libtest.dll /IMPLIB:debug\\libtest.lib /PDB:debug\\libtest.pdb /SUBSYSTEM:WINDOWS $(LDFLAGS) $(OBJS) $(LIBS)
@echo generate dynamic library finished.
.cpp.obj:
@if not exist debug ( mkdir debug )
@cl /nologo /ZI /EHsc /W3 /MDd /W3 /c $(CPPFLAGS) /Fd:debug\\ /Fo:debug\\ $*.cpp
@echo compile $@ finished.
clean:
@del /f /s /q *.obj
@del /f /s /q *.res
@del /f /s /q *.ilk
@del /f /s /q *.idb
@del /f /s /q *.dll
@del /f /s /q *.exe
@del /f /s /q *.pdb
@del /f /s /q *.exp
@del /f /s /q *.lib
@if exist debug ( rd /s /q debug )
第六步:在.vscode目录下新建c_cpp_properties.cpp,
c_cpp_properties.json的代码如下:
"configurations": [
"name": "msvc2015",
"browse":
"path": [
"$workspaceRoot",
"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include",
"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared"
]
,
"includePath": [
"$workspaceRoot",
"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include",
"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared"
],
"intelliSenseMode": "msvc-x64"
],
"version": 3
这一步配置完成后,VS Code的C++开发功能已经正常工作了。
第七步:新建main.cpp
main.cpp的代码如下:
#include <iostream>
int main()
std::cout<<"Hello World for Visual Studio Code C++ "<<std::endl;
return 0;
extern "C" int __declspec(dllexport) get_age()
return 21;
第八步:编译
按下CTRL+SHIFT+B,成功截图如下:
第九步:设置调试
新建launch.json,写入以下代码:
"version": "0.2.0",
"configurations": [
"name": "(Windows) Launch",
"type": "cppvsdbg",
"request": "launch",
"program": "test.exe",
"args": [],
"stopAtEntry": false,
"cwd": "$workspaceRoot/debug",
"environment": [],
"externalConsole": true
]
下个断点:
接下来就可以直接按下F5了:
至此VS Code的C++开发环境设置全部顺利完成。
以上是关于VSCode实现C++代码提示语法高亮编译和调试的主要内容,如果未能解决你的问题,请参考以下文章
在vscode中编写vue代码,new Vue还有其他vue语法都没有代码补全和提示,该怎么设置?