1. Descarga de programas
El software que debe descargarse es el siguiente:
- Código VS
- Herramientas de compilación: MinGW o MSYS2 o VS2022
Dirección de descarga de VS Code: enlace
Dirección de descarga de MinGW: enlace o enlace
Dirección de descarga de MSYS2: enlace
Dirección de descarga de VS2022: enlace
Después de descargar el software anterior, se pueden instalar los pasos de instalación. Se recomienda elegir MinGW como herramienta de compilación. Si instala MinGW, puede usar el compilador GCC y si instala VS2022, puede usar el compilador MSVC.
2. Configuración del entorno
1. Agregar variables de entorno
Agregue la carpeta MinGW
de a las variables de entorno de su sistema. Si se ejecuta el siguiente código en la línea de comandos y no aparece ningún mensaje de error, la superficie se agrega correctamente.bin
PATH
gcc --version
g++ --version
gdb --version
La salida es la siguiente:
2. Instale el complemento de código VS
Se deben instalar tres complementos, a saber:
- C/C++
- Paquete de extensión C/C++
- Atom One Dark Theme (opcional, para los colores del tema del código)
3. Parámetros del compilador
1. CCG
parámetro | ilustrar | ejemplo |
---|---|---|
-C | Solo compile archivos de origen, genere archivos de objetos, no enlace | |
-o | Especifique el nombre del archivo de salida | -o build\${fileBasenameNoExtension}.exe |
-I <incluir_ruta> | Agregar ruta de búsqueda de archivo de encabezado | -I ${carpeta del espacio de trabajo}/incluir |
-L <ruta_biblioteca> | Agregar ruta de búsqueda de archivos de biblioteca | -L ${carpeta del espacio de trabajo}/lib |
-l <nombre_biblioteca> | Vincular el archivo de biblioteca especificado | -lgdi32 |
-gramo | Generar información de depuración | |
-std= | Especifica el estándar de idioma utilizado | -std=c11、-std=c++14 |
-O | Especifique el nivel de optimización, el nivel puede ser 0, 1, 2, 3, s | |
-Muro | mostrar todas las advertencias | |
-Werror | tratar las advertencias como errores | |
-pthread | Habilitar soporte para subprocesos múltiples | |
-lm | vincular la biblioteca de matemáticas | |
-mwindows | quitar la ventana de la consola |
2. MSVC
parámetro | ilustrar | ejemplo |
---|---|---|
/C | Solo compile archivos fuente, no enlace para generar archivos ejecutables | |
/EHsc | Habilitar la compatibilidad con el manejo de excepciones de C++ | |
/F+ruta | Especifica la ruta del archivo intermedio | /Fo${workspaceFolder}\build\${fileBasenameNoExtension}.obj |
/Fe+ruta | Especificar la ruta del archivo de destino | /Fe${workspaceFolder}\build\${fileBasenameNoExtension}.exe |
/I | Agregar directorio de archivos de inclusión | |
/D+nombre[=valor] | Definir macros de preprocesamiento | |
/w | establecer el nivel de advertencia | |
/O | establecer el nivel de optimización | |
/Día | Generar información de depuración | |
/MARYLAND | Uso de bibliotecas de tiempo de ejecución vinculadas dinámicamente | |
/MONTE | Vinculación estática de la biblioteca en tiempo de ejecución con subprocesos múltiples | |
/enlace | pasar opciones del enlazador | |
/PAG | Generar salida preprocesada | |
/mostrarIncluye | mostrar archivos incluidos | |
/? | mostrar información de ayuda |
4. Archivo de configuración
Puede consultar el enlace
del artículo para ejecutar código C/C++ en VS Code, puede usar archivos de configuración para especificar: ruta del archivo de encabezado, ruta del archivo de la biblioteca, ruta del compilador, etc. Los archivos de configuración pueden generarse automáticamente o configurarse manualmente, pero la mayoría de las veces los archivos de configuración generados automáticamente no pueden cumplir con nuestros requisitos, por lo que debemos configurarlos manualmente con más frecuencia. Incluye principalmente tres archivos de configuración: c_cpp_properties.json
, tasks.json
y launch.json
las funciones de los tres archivos de configuración son las siguientes:
c_cpp_properties.json
: configure la ruta del compilador y la ruta de búsqueda del archivo de encabezado para las extensiones C/C++ para garantizar el funcionamiento normal del análisis de código e IntelliSensetasks.json
: configurar tareas de ejecución, comandos personalizados o scripts ejecutados en el editorlaunch.json
: configure los ajustes de inicio y depuración del depurador
1. Configuración básica
c_cpp_properties.json
{
"configurations": [
// 32位
{
"name": "Win32", // 当前配置的名称
"includePath": [
"${workspaceFolder}/**",
"D:\\C\\VS2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\include" // 编译器的头文件路径
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
// 此处是你的 Windows SDK 版本号
"windowsSdkVersion": "10.0.20348.0",
// 此处是编译器的地址
"compilerPath": "D:\\C\\VS2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\Hostx64\\x86\\cl.exe",
"cStandard": "c17", // C 标准
"cppStandard": "c++17", // C++ 标准
"intelliSenseMode": "windows-msvc-x86" // 智能感知的模式
},
// x64位
{
"name": "x64",
"includePath": [
"${workspaceFolder}/**",
"D:\\C\\VS2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\include" // 编译器的头文件路径
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
// 此处是你的 Windows SDK 版本号
"windowsSdkVersion": "10.0.20348.0",
// 此处是编译器的地址
"compilerPath": "D:\\C\\VS2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\Hostx64\\x64\\cl.exe",
"cStandard": "c17", // C 标准
"cppStandard": "c++17", // C++ 标准
"intelliSenseMode": "windows-msvc-x64" // 智能感知的模式
}
],
"version": 4
}
tasks.json
{
"tasks": [
{
"label": "MSVC编译",
"type": "shell",
"command": "cmd.exe",
"args": [
"/c",
// 编译器地址
"D:\\C\\VS2022\\Community\\VC\\Auxiliary\\Build\\vcvars32.bat && cl.exe",
"main.cpp",
"/Zi",
"/Od",
"/EHsc",
// 中间文件生成目录
"/Fo${workspaceFolder}\\build\\${fileBasenameNoExtension}.obj",
// 目标文件生成目录
"/Fe${workspaceFolder}\\build\\${fileBasenameNoExtension}.exe",
],
"options": {
"cwd": "${workspaceFolder}" // 作为当前打开目录
},
"problemMatcher": [
"$msCompile"
],
"group": "build",
"detail": "Task generated by Debugger."
},
],
"version": "2.0.0"
}
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++: gcc.exe 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}\\build\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:\\A\\MinGW64\\bin\\gdb.exe", //此处为你的gdb.exe路径
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "MSVC编译"
}
]
}
2. Configuración de la tarea Eliminar archivo
{
"label": "删除中间文件",
"type": "shell",
"command": "cmd.exe",
"args": [
"/c",
"del",
"${workspaceFolder}\\build\\*.obj", // 删除build文件夹下的所有.obj文件
"${workspaceFolder}\\build\\*.ilk", // 删除build文件夹下的所有.ilk文件
"${workspaceFolder}\\*.pdb", // 删除工作空间下的所有.pdb 文件
],
"group": "build",
},
3. Compilar, eliminar y ejecutar
Los siguientes tasks.json
archivos de configuración se ejecutarán secuencialmente: compilar archivos de origen, eliminar archivos intermedios, ejecutar operaciones de archivos ejecutables.
{
"tasks": [
// MSVC编译
{
"label": "MSVC编译",
"type": "shell",
"command": "cmd.exe",
"args": [
"/c",
"D:\\C\\VS2022\\Community\\VC\\Auxiliary\\Build\\vcvars32.bat && cl.exe",
"main.cpp",
"/Zi",
"/Od",
"/EHsc",
// 中间文件生成目录
"/Fo${workspaceFolder}\\build\\${fileBasenameNoExtension}.obj",
// 目标文件生成目录
"/Fe${workspaceFolder}\\build\\${fileBasenameNoExtension}.exe",
],
"options": {
"cwd": "${workspaceFolder}" // 作为当前打开目录
},
"problemMatcher": [
"$msCompile"
],
"group": "build",
"detail": "Task generated by Debugger."
},
// 删除中间文件
{
"label": "删除中间文件",
"type": "shell",
"command": "cmd.exe",
"args": [
"/c",
"del",
"${workspaceFolder}\\build\\*.obj",
"${workspaceFolder}\\build\\*.ilk",
"${workspaceFolder}\\*.pdb",
],
"group": "build",
"dependsOn": [
"MSVC编译",
]
},
// RUN
{
"label": "RUN",
"type": "shell",
"command": "cmd.exe",
"args": [
"/c echo. && echo. && echo. && echo. && echo. && echo ================================================================================ && .\\build\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${workspaceFolder}"
}, // 作为当前打开目录
"group": {
"kind": "build",
"isDefault": true
},
"dependsOn": [
"删除中间文件",
]
},
],
"version": "2.0.0"
}
5. Resolución de problemas
1. Resuelva el problema de ejecutar flashback de consola de código
Método 1
Modifique el valor del parámetro launch.json
en el archivo paraexternalConsole
false
"externalConsole":false
Método 2
Agregar al final del programa principal: system("pause");
Método 3
Agregar al final del programa principal:getchar();
2. Solución de código distorsionado
Método 1
Agregue el archivo de encabezado <windows.h> y llame a la función API SetConsoleOutputCP(65001)
Método 2
Cambie el formato de codificación de VScode a GBK, o abra el archivo de código fuente con el Bloc de notas y guárdelo como formato de codificación ANSI.
Método 3
Modifique el archivo de configuración setting.json de VScode y unifíquelo en un formato de codificación.
Método 4
El conjunto de caracteres predeterminado de Windows (chino) es Windows-936 (GBK), y el compilador GCC lo analiza de acuerdo con UTF-8 al compilar de manera predeterminada. Cuando no se especifica el conjunto de caracteres, se tratará como UTF- 8, por lo que causa caracteres ilegibles. Por lo tanto, se puede solucionar agregando los siguientes parámetros al compilar con GCC.
-fexec-charset=gbk
-finput-charset=gbk