Cómo VSCode implementa el entorno de lenguaje C

premisa

Descargar e instalar VSCode
Dirección de descarga de VSCode
Sitio web oficial de VSCode para instalar GCC en Windows

VSCode es solo un editor (editor), no un IDE (entorno de desarrollo integrado), y no contiene un compilador (compilador) y muchas otras funciones, por lo que el compilador debe instalarse solo.

repaso de conocimientos

Cómo gcc ejecuta el lenguaje C

inserte la descripción de la imagen aquí
El contenido de trabajo general de estos 4 pasos es el siguiente:
(1) Preprocesamiento, el compilador C procesa varios comandos de preprocesamiento, incluida la inclusión de archivos de encabezado, expansión de definición de macro
, selección de compilación condicional, etc.;
(2) Compilación, compilación Preprocesamiento de la fuente obtenida archivo de código, realice una "conversión de traducción", genere el
programa objetivo de lenguaje de máquina y obtenga el archivo de ensamblaje de lenguaje de máquina;
(3) ensamble, traduzca el código de ensamblaje a código de máquina, pero aún no se puede ejecutar;
(4) Vinculación , procesando archivos reubicables, convirtiendo varias referencias de símbolos y definiciones de símbolos en archivos ejecutables, el
compilador gcc forma un archivo de objeto a través de la compilación, y el sufijo es .o, similar al compilador de Microsoft (el sufijo del archivo de objeto VS es .obj)

1. Bajo linux

$ gcc -c main.c  // 会得到 main.o 文件
$ gcc main.o //  链接得到 a.out 文件   a.out 是 gcc 默认输出文件名称,可以通过-o 参数指定新的文件名。
$ ./a.out  // 执行a.out 输出内容    .out 是linux的文件格式

2. Bajo Windows

gcc -g test.c -o test.exe // 把test.c 编译成test.exe 文件  -o 自定文件格式
./test.exe  // 当前目录下直接执行 test.exe文件    

1. Instale MinGW-w64

MinGW-w64 es un compilador para archivos de lenguaje C.
MinGW-w64 - para Windows de 32 y 64 bits Descargue MinGW-w64 desde esta página en el sitio web oficial , desplácese un poco hacia abajo y seleccione x86_64-posix-seh en la última versión. Es mejor no usar Descargar la última versión, este es un paquete de instalación en línea y la descarga puede fallar debido al "entorno de red" doméstico. Descomprima el archivo en su propio directorio
inserte la descripción de la imagen aquí
Por ejemplo: Descomprimo en E:\RuanJian_2\VSCode
inserte la descripción de la imagen aquí

2. Configure las variables de entorno de MinGW-w64

1. Variable de entorno del sistema, ruta , agregue la ruta mingw64/bin descomprimida a la ruta,
como: E:\RuanJian_2\VSCode\mingw64\bin

2. Para verificar si la configuración es exitosa, presione la tecla de acceso directo win+R, cmd e ingrese gcc -v
3. Si es como se muestra en la figura a continuación, es exitosa
inserte la descripción de la imagen aquí

3. Instala el complemento

Descargue el complemento oficial c/c++ en vscode (obligatorio)
inserte la descripción de la imagen aquí

Complemento Code Runner, ejecute rápidamente el lenguaje C (opcional)
inserte la descripción de la imagen aquí

4. Cree una nueva carpeta .vscode y configure el entorno del directorio de trabajo

1. Cree una carpeta de prueba en Windows.
inserte la descripción de la imagen aquí
2. Abra VSCode, abra la carpeta c-test y busque el directorio donde se creó c-test
inserte la descripción de la imagen aquí
3. La página después de abrir con éxito
inserte la descripción de la imagen aquí

4. Cree una carpeta .vscode Cree cuatro archivos
: launch.json, tasks.json, settings.json y c_cpp_properties.json en .vscode

1. launch.json: copie el siguiente código en él
Nota: el lugar que debe modificarse miDebuggerPatse reemplaza con el directorio donde instaló mingw64

{
    
    
    "version": "0.2.0",
    "configurations": [
        {
    
    
            "name": "(Windows) Launch",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "cmd",
            "preLaunchTask": "compile",
            "args": [
                "/C",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "&",
                "echo.",
                "&",
                "pause"
            ],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "console": "externalTerminal"
        },
        {
    
    
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "E:\\RuanJian_2\\VSCode\\mingw64\\bin\\gdb.exe",// 自己电脑的gdb.exe
            "preLaunchTask": "compile",//这里和task.json的label相对应
            "setupCommands": [
                {
    
    
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
 
        }
    ]
}



2. tasks.json: copia el siguiente código en él

{
    
    
    "version": "2.0.0",
    "tasks": [
        {
    
    
            "label": "compile",
            "type": "shell",
            "command": "gcc", // C语言是用gcc的,如果编译的是C++文件,这需要改为g++
            "args": [
                "-g", 
                "${file}", 
                "-o", 
                "${fileBasenameNoExtension}.exe",
                "-fexec-charset=GBK"//Console窗体输出字符编码 解决控制台中文乱码问题
            ]
        }
    ],
    "presentation": {
    
    
        "echo": true,
        "reveal": "always",
        "focus": false,
        "panel": "shared", 
        "showReuseMessage": true,
        "clear": false
    }
}



3. settings.json: copia el siguiente código en él

{
    
    
    "files.associations": {
    
    
        "cmath": "cpp",
        "cstddef": "cpp",
        "cstdint": "cpp",
        "cstdio": "cpp",
        "cstdlib": "cpp",
        "cstring": "cpp",
        "cwchar": "cpp",
        "exception": "cpp",
        "initializer_list": "cpp",
        "ios": "cpp",
        "iosfwd": "cpp",
        "iostream": "cpp",
        "istream": "cpp",
        "limits": "cpp",
        "memory": "cpp",
        "new": "cpp",
        "ostream": "cpp",
        "stdexcept": "cpp",
        "streambuf": "cpp",
        "string": "cpp",
        "system_error": "cpp",
        "tuple": "cpp",
        "type_traits": "cpp",
        "typeinfo": "cpp",
        "utility": "cpp",
        "xfacet": "cpp",
        "xiosbase": "cpp",
        "xlocale": "cpp",
        "xlocinfo": "cpp",
        "xlocnum": "cpp",
        "xmemory": "cpp",
        "xmemory0": "cpp",
        "xstddef": "cpp",
        "xstring": "cpp",
        "xtr1common": "cpp",
        "xutility": "cpp",
        "stdio.h": "c"
    }
}

4. c_cpp_properties.json: copie el siguiente código en él
Nota: Los lugares que deben modificarse includePathy pathreemplazarse con el directorio donde instaló mingw64

{
    
    
    "configurations": [
        {
    
    
            "name": "Win32",
            "includePath": [    // 如果使用别人的库,路径就要加到includePath和browse里
                "${workspaceRoot}",
                "E:/RuanJian_2/VSCode/mingw64/include/**",  // 需要改成自己的mingw64目录
                "E:/RuanJian_2/VSCode/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
                "E:/RuanJian_2/VSCode/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
                "E:/RuanJian_2/VSCode/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
                "E:/RuanJian_2/VSCode/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include",
                "E:/RuanJian_2/VSCode/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
                "E:/RuanJian_2/VSCode/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "__GNUC__=6",
                "__cdecl=__attribute__((__cdecl__))"
            ],
            "intelliSenseMode": "msvc-x64",
            "browse": {
    
    
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": "",
                "path": [
                    "${workspaceRoot}",
                    "E:/RuanJian_2/VSCode/mingw64/include/**",   // 需要改成自己的mingw64目录
                    "E:/RuanJian_2/VSCode/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
                    "E:/RuanJian_2/VSCode/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
                    "E:/RuanJian_2/VSCode/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
                    "E:/RuanJian_2/VSCode/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include",
                    "E:/RuanJian_2/VSCode/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
                    "E:/RuanJian_2/VSCode/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include"
                ]
            }
        }
    ],
    "version": 4
}

5. En la carpeta c-test, cree el archivo HelloWord.c

#include <stdio.h>
// 输出你好
int main(){
    
    
    printf("Hello,你好");
    return 0;
}

inserte la descripción de la imagen aquí

6. Primera terminal -> Ejecutar tarea de compilación para formar un archivo exe

Ejecutar tarea de compilación

inserte la descripción de la imagen aquí

C/C++: gcc.exe genera archivos de actividad

inserte la descripción de la imagen aquí

7. Ejecutar -> Ejecutar sin depurar para ejecutar el archivo exe

inserte la descripción de la imagen aquí

Captura de pantalla exitosa
inserte la descripción de la imagen aquí

Si desea depurar, rompa el punto, Ejecute -> ¡comience a depurar!

Supongo que te gusta

Origin blog.csdn.net/qq_44231797/article/details/122334619
Recomendado
Clasificación