El código de Visual Studio incluye ruta


Estoy intentando compilar C/C++ en código de Visual Studio. Instalé C / C++ y todas las extensiones relevantes.

#include <stdio.h>
int main() {
    printf("Test C now\n");
    return 0;
}

Pero hay una línea verde debajo de #include <stdio.h> que dice "Agregar ruta de inclusión a la configuración". Cuando hago clic en él, se mueve a "c_cpp_properties.json".

¿Cómo y dónde puedo agregar rutas de inclusión en las configuraciones a continuación?

"configurations": [
    {
        "name": "Mac",
        "includePath": ["/usr/include"]
    }
]
Author: Niall, 2016-05-30

3 answers

¿Cómo y dónde puedo agregar rutas de inclusión en las configuraciones a continuación?

La lista es una lista delimitada por comas, por lo tanto, agregar una ruta de inclusión se vería algo como;

"configurations": [
    {
        "name": "Mac",
        "includePath": ["/usr/local/include",
            "/path/to/additional/includes",
            "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include"
        ]
    }
]

Fuente; cpptools blog 31 de marzo de 2016 .

La fuente enlazada tiene un gif que muestra el formato para la configuración de Win32, pero lo mismo se aplica a los demás.

El ejemplo anterior incluye la ruta SDK (OSX 10.11) si Xcode es instalado.

Nota Encuentro que puede tomar un tiempo actualizar una vez que se ha cambiado la ruta de inclusión.

La extensión cpptools se puede encontrar aquí.

Puede encontrar más documentación (de Microsoft) sobre el soporte del lenguaje C++ en VSCode aquí .


Por el bien de la preservación (de la discusión), los siguientes son fragmentos básicos para el contenido de las tareas.archivo json para compilar y ejecutar un archivo de C++ o C file. Permiten espacios en el nombre del archivo (requiere escapar las comillas adicionales en el json usando \"). El shell se usa como el runner, permitiendo así la compilación (clang...) y la ejecución (&& ./a.out) del programa. También supone que las tareas.json "vive" en el espacio de trabajo local (bajo el directorio .vscode). Otra tarea.detalles json, como variables soportadas, etc. se puede encontrar aquí.

Para C++;

{ 
    "version": "0.1.0", 
    "isShellCommand": true, 
    "taskName": "GenericBuild", 
    "showOutput": "always", 
    "command": "sh", 
    "suppressTaskName": false, 
    "args": ["-c", "clang++ -std=c++14 -Wall -Wextra -pedantic -pthread \"${file}\" && ./a.out"]
}

Para C;

{ 
    "version": "0.1.0", 
    "isShellCommand": true, 
    "taskName": "GenericBuild", 
    "showOutput": "always", 
    "command": "sh", 
    "suppressTaskName": false, 
    "args": ["-c", "clang -std=c11 -Wall -Wextra -pedantic -pthread \"${file}\" && ./a.out"] // command arguments... 
}
 30
Author: Niall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:54:07

Para los usuarios de Mac solo las herramientas de línea de comandos instaladas en lugar de Xcode, compruebe el directorio /Library/Developer/CommandLineTools/, por ejemplo::

"configurations": [{
    "name": "Mac",
    "includePath": [
        "/Library/Developer/CommandLineTools/usr/lib/clang/8.1.0/include/",
        "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1/tr1/",
        "/usr/include/c++/4.2.1",
        "/usr/local/include",
        "/usr/include"
    ]
}]

Nota: También puede abrir / generar el archivo c_cpp_properties.json a través del C/Cpp: Edit Configurations comando de la Paleta de comandos (Command P).

 5
Author: ryenus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-06 00:50:35

Esta respuesta tal vez tarde, pero me acaba de pasar a solucionar el problema. Aquí está mi c_cpp_properties.archivo json:

{
"configurations": [
    {
        "name": "Linux",
        "includePath": [
            "${workspaceFolder}/**",                
            "/usr/include/c++/5.4.0/",
            "usr/local/include/",
            "usr/include/"
        ],
        "defines": [],
        "compilerPath": "/usr/bin/gcc",
        "cStandard": "c11",
        "cppStandard": "c++14",
        "intelliSenseMode": "clang-x64"
    }
],
"version": 4

}

 0
Author: 100rabh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-12 04:11:15