No contexto atual, o uso do Windows Subsystem for Linux combinado com o Visual Studio Code oferece um ambiente eficaz para o desenvolvimento de programas C/C++ destinados ao Linux. Esta configuração é considerada uma das abordagens mais práticas para desenvolvimento.
Procedimento
Primeiro, abra o VS Code e conecte-se ao sbusistema WSL através do botão verde no canto inferior esquerdo. Em seguida, crie o arquivo de configuração launch.json. Depois, gere o arquivo tasks.json. Após isso, crie e edite o arquivo-fonte com o código desejaod. Para executar, utilize o comando "Executar sem Depuração" no menu ou pressione Ctrl + F5.
Arquivos de Configuração
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "gcc - Compilar e depurar arquivo ativo",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Habilitar formatação legível para o gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "gcc construir arquivo ativo",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "gcc construir arquivo ativo",
"command": "/usr/bin/gcc",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}",
"-lpthread"
],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": [
"$gcc"
],
"group": "build"
}
]
}
Exemplo de Código-fonte
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#define NUM_THREADS 50
void *processa_dados(void *param) {
int id = (int)param;
printf("Thread %d executando\n", id);
pthread_exit(NULL);
}
int main() {
pthread_t identificadores[NUM_THREADS];
int i;
for (i = 0; i < NUM_THREADS; i++) {
pthread_create(&identificadores[i], NULL, processa_dados, (void *)i);
}
for (i = 0; i < NUM_THREADS; i++) {
pthread_join(identificadores[i], NULL);
}
return 0;
}