您的位置:首页 > 编程语言 > C语言/C++

VSCode实现C++代码提示、语法高亮、编译和调试

2017-09-28 11:50 706 查看
众所周知,目前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++开发环境设置全部顺利完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息