Primo Software

Getting Started with C++ and Visual Studio Code on Windows

Before going through these steps make sure you have done Setup C++ development environment on Windows

Visual Studio Code

Download and install from Visual Studio Code site.

Open Visual Studio Code and press Cmd + Shift + P. Select Shell Command: Install 'code' command in PATH.

C++ Project

Create a directory called simple in ~/cpp/simple

mkdir ~/cpp/simple

Add a configuration script configure.ps1:

$temp_file = [IO.Path]::GetTempFileName()

# find where Visual Studio 2022 is installed
$vs_install_dir = $(Get-VSSetupInstance | Select-VSSetupInstance -Version '[17.0,18.0]' | Select-Object -ExpandProperty InstallationPath)
$vs_common_tools = "${vs_install_dir}/Common7/Tools/"

# run `VsDevCmd.bat -arch=amd64 -host_arch=amd64` and save environment to $temp_file
cmd /c " `"$vs_common_tools/VsDevCmd.bat`" -arch=amd64 -host_arch=amd64 && set > `"$temp_file`""

# copy the environment variables into PowerShell
Get-Content $temp_file | Foreach-Object {
    if($_ -match "^(.*?)=(.*)$") {
        Set-Content "env:\$($matches[1])" $matches[2]
    }
}

Remove-Item $temp_file

Open the directory in Visual Studio Code. It is important to source the configure.ps1 script before running code . in order to setup the correct C++ environment:

cd ~/cpp/simple

. .\configure.ps1

code .

Install the C/C++ Extension Pack.

Project Files

Add the following files:

src/main.cpp

#include <iostream>

int main() {
  std::cout << "Hello CMake!\n";
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.20)

project(simple)

add_executable(simple src/main.cpp)

build.ps1

New-Item -Force -Path ./build/debug -ItemType Directory 
Push-Location ./build/debug
    cmake -G 'Ninja' -DCMAKE_BUILD_TYPE=debug ../..
    ninja
Pop-Location

.gitignore

build/

Test the build

Open Terminal in Visual Studio Code and test the build from command line:

./build.ps1

Automate the build

Add the following Visual Studio Code specific files to the .vscode subdir:

.vscode/tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build",
            "type": "shell",
            "windows": {
                "command": "${workspaceFolder}/build.ps1",
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

Test the build by pressing Ctrl + Shift + B. Visual Studio Code should execute the build.ps1 script automatically.

Setup Debugging

Add the following Visual Studio Code specific files to the .vscode subdir:

.vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug (cppvsdbg)",
            "type": "cppdbg",
            "request": "launch",
            "cwd": "${workspaceFolder}",
            "windows": {
                "type": "cppvsdbg",
                "program": "${workspaceFolder}/build/debug/simple.exe"
            },
            "preLaunchTask": "Build"
        }        
   ]
}

Test the debugging

Set a breakpoint on the first line of int main() inside src/main.cpp. Press F5 to launch the debugger. It should stop at the breakpoint.