Desenvolvimento de Programas C para Linux com Visual Studio Code

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;
}

Tags: Visual Studio Code Linux C Windows Subsystem for Linux gdb

Publicado em 7-3 19:52