Instalar e configurar o VS Code
Se ainda não o tiver feito, transfira e instale o Visual Studio Code
Instalar a extensão C\

Instalação da extensão Code Runner: esta extensão é opcional, mas permite-lhe executar o código num terminal externo para utilizar a entrada do utilizador (cin). Nas definições, active a opção Code-runner: Run In Terminal.

Instalar um compilador
Para compilar, executar e analisar o seu código, precisará de ferramentas como o GNU.
Descarregue e descomprima uma versão do GNU Compiler Collection (GCC) se ainda não estiver no seu computador.
g++ --version
Também é possível instalar uma versão do GCC a partir do MSYS2
$ pacman -S mingw-w64-ucrt-x86_64-gcc
Crie o seu projeto C++
Uma vez instaladas as várias extensões, pode criar o seu projeto C++. Para isso, basta criar uma pasta, abrir o VS Code nessa pasta e criar um ficheiro .cpp. Pode fazê-lo através da interface do VS Code ou a partir da linha de comandos
mkdir myproject cd myproject code .
Copie o código Hello world para o ficheiro de origem.
#include <iostream>
int main()
{
std::cout << "Hello World" << std::endl;
return 0;
}
Compilar e testar o seu programa
Pour lancer le code vous pouvez utiliser le menu Run > Start Debugging (F5) qui lancera le programme dans la console de debug ou faire un clique-droit sur l’éditeur et lancer Run Code (Ctrl+Alt+N) qui le lancera dans le terminal (si Code runner est activé)


Também pode fazer isto na linha de comandos a partir do terminal
g++ helloworld.cpp # -> a.exe executabl. compile and link ./a.exe # execute file g++ -S helloworld.cpp # -> helloworld.s assembly source file. compile g++ -c helloworld.cpp # -> helloworld.o object file. compile and assemble
Adicionando uma biblioteca C++ externa ao VS Code
Pode adicionar bibliotecas externas ou criar as suas próprias bibliotecas. Para que o VS Code compile as bibliotecas com o programa, é necessário especificar o caminho de acesso no ficheiro tasks.json (por exemplo,”–include=include/utils.cpp”)
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "C:\\MinGW\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"--include=include/utils.cpp",
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
para compilar o programador, é necessário compilar e ligar os dois ficheiros
g++ helloworld.cpp include/utils.cpp -o helloworld # or g++ -c helloworld.cpp include/utils.cpp # get object files g++ -o helloworld.exe helloworld.o include/utils.o ./helloworld.exe #run program
Medição do tempo de execução do programa
Um método bastante simples de medir o tempo de execução de um programa é usar a biblioteca time.h e medir o tempo decorrido entre o início e o fim do programa.
Para testar o tempo de execução, criamos uma função que conta de 0 a n com um certo atraso entre cada iteração.
void count_to(int n = 10, int delay = 0);
#include <iostream>
#include <windows.h>
//#include <unistd.h>
void count_to(int n, int delay)
{
for (int i=0;i<=n;i++){
std::cout << i << std::endl;
Sleep(delay);
}
}
Em seguida, no código principal, medimos o tempo antes e depois da execução da função count_to()
#include <iostream>
#include <time.h>
#include "include/utils.h"
clock_t start, end;
double cpu_time_used;
int main()
{
std::cout << "Hello World" << std::endl;
start = clock();
count_to(10,100);
end = clock();
cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
printf("Execution time: %f seconds\n", cpu_time_used);
return 0;
}
A consola apresenta o seguinte resultado
Hello World 0 1 2 3 4 5 6 7 8 9 10 Execution time: 1.180000 seconds
Utilizar a ferramenta de depuração do VS Code
A função Executar e Depurar permite-lhe executar o código passo a passo, colocando pontos de paragem em diferentes pontos do código (identificados à esquerda do número da linha por um ponto vermelho). Também lhe permite observar as variáveis e os registos à medida que são executados. Isto permite-lhe seguir o progresso do código passo a passo em busca de quaisquer erros.
O código será executado normalmente até ao primeiro ponto de interrupção, após o qual pode continuar a progressão para o ponto de interrupção seguinte ou executar o código passo a passo a partir desse ponto, utilizando os botões de navegação

Pode observar os valores das variáveis ou registos em cada passo no separador VARIABLES. Ou observar determinadas variáveis em WATCH.
Também pode visualizar o código de montagem compilado abrindo a vista de “desmontagem”, clicando com o botão direito do rato no editor e selecionando “Abrir vista de desmontagem”.

Resolução de problemas
- “thread” não é reconhecido
tente instalar o MinGW-w64 a partir do MSYS2 e adicione C:\msys64\ucrt64\bin às variáveis de ambiente. Verifique se o compilador utilizado é o g++.
- A utilização de cout dá origem a um erro de segmentação
Como solução intermédia, pode substituir o custo por printf
verifique se a biblioteca libstdc++-6.dll está no mesmo local que o compilador utilizando a consola de depuração do código vs
Loaded 'C:\Program Files\Tesseract-OCR\libstdc++-6.dll'. Symbols loaded. #instead of Loaded 'C:\msys64\ucrt64\bin\libstdc++-6.dll'. Symbols loaded.
- O código de execução apresenta resultados diferentes do código de depuração
Certifique-se de que os comandos são os mesmos para ambas as funções (para mim, o flage “-g” foi um problema).
no ficheiro tasks.json (depurar)
//
"command": "C:\\msys64\\ucrt64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
no ficheiro de definições (código do corredor)
"code-runner.executorMap": {
"cpp": "cd $dir && g++ -g $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
},