sirven que programacion principales para librerias lenguaje las ejemplos definicion crear cabecera bibliotecas archivos c++ vim syntastic

c++ - programacion - para que sirven las librerias de lenguaje c



Incluyendo archivos de cabecera recursivamente para syntastic (2)

He tenido la misma pregunta con poca suerte. Sin embargo, he encontrado que si uso el encabezado de estilo de comillas incluido, syntactic verificará adecuadamente las carpetas y no emitirá advertencias. Por ejemplo, si estás trabajando en foo2.cpp,

#include "dir3/foo4.h" #include "../dir1/foo1.h"

Save bracket include para libs estándar y cualquier libs que desee codificar en vim.

Estoy trabajando con un proyecto de C ++ y tratando de configurarlo para usar syntastic. En mi proyecto tengo una estructura de directorio anidada de archivos de encabezado (la estructura anidada real es mucho peor, este es un ejemplo).

--libs |---dir1 |---foo1.h |---dir2 |---foo2.h |---foo3.h |---dir3 |---foo4.h

He incluido los archivos lib en mi archivo .vimrc usando:

vamos a g: syntastic_cpp_include_dirs = [''libs /'']

Asumí que esto tomaría todos los archivos de encabezado recursivamente, pero no lo hace. En el código, syntastic se queja con el error "no se encontró tal archivo o directorio".

Cuando cambio explícitamente la variable para referirme a un directorio específico:

vamos a g: syntastic_cpp_include_dirs = [''libs / dir2 / dir3 /'']

funciona.

Mis preguntas:

  1. ¿Cómo configura syntastic para que incluya los archivos de encabezado de un conjunto de directorios de forma recursiva?
  2. ¿Cómo haces esto para múltiples proyectos? La edición de .vimrc siempre que cambio el proyecto en el que estoy trabajando no suena bien. Creo que debe haber una mejor manera.

EDITAR:

No mencioné que en mi .vimrc, las siguientes opciones están presentes para syntastic:

let g:syntastic_check_on_open=1 let g:syntastic_enable_signs=1 let g:syntastic_cpp_include_dirs = [''libs/dir2/dir3'', ''libs/dir2 ] let g:syntastic_cpp_check_header = 1 let g:syntastic_cpp_remove_include_errors = 1


Puede incluir todos los directorios en los que se .syntastic_cpp_config archivos de encabezado por proyecto en el directorio raíz del proyecto en un archivo .syntastic_cpp_config . El formato para hacerlo sería lo mismo que proporcionar las directivas -I al compilador.

Para tu caso significa:

  • Cree un archivo .syntastic_cpp_config en las sources (asumiendo que es donde están su código y las sources encuentra en el mismo nivel de profundidad en la jerarquía de directorios que libs ).
  • Pon las siguientes líneas en él:

    -Ilibs/dir1

    -Ilibs/dir2

    -Ilibs/dir2/dir3

  • Tenga en cuenta que las banderas son 1 por línea.

  • De esta manera, no tiene que tener todos los directorios de inclusión en su .vimrc .

Puede tener un archivo diferente para mantener esta configuración personalizada por proyecto, especificada por la variable global .vimrc g:syntastic_cpp_config_file , por ejemplo

let g:syntastic_cpp_config_file = ''.my_custom_include_file_for_syntastic''

Syntastic comprobará cada directorio de origen y hacia arriba hasta que encuentre este archivo y luego lo usará para producir su salida.

Vea la página wiki de Syntastic , enlace viejo para más detalles.