Es posible añadir las rutas de inclusión y bibliotecas para todos los proyectos C/C++? En otras palabras: ¿Cómo puedo hacer que ellos mundial o una copia de C/C++ proyecto de construir la configuración de uno a otro?

InformationsquelleAutor Walidix | 2010-04-24

8 Comentarios

  1. 13

    Para Eclipse Indigo:
    No hay ninguna posibilidad para definir globalmente las rutas de inclusión y bibliotecas.
    Pero usted puede exportar e importar de un proyecto a otro.

    Ir a Proyecto > Propiedades > C/C++ General > los Caminos y los Símbolos
    A continuación, haga clic en Ajustes de Exportación… para guardar las rutas de inclusión y/o definiciones de símbolo a un archivo. En su otro proyecto, a continuación, puede utilizar la Configuración de Importación…

    • No funciona 🙁 La función de importación parece estar roto
    • Funciona a la perfección (Eclipse Juno): sólo es necesario para exportar la configuración de proyecto, que contiene más relevantes del conjunto de incluye, al archivo xml (vamos a llamar a default_includes.xml) y guárdelo en algún lugar de tu disco duro para permitir que sus otros proyectos para importar, eso es todo.
    • ¿qué acerca de las bibliotecas?
  2. 9

    Sí, usted puede, en 2 pasos, más amigable con el usuario como la mencionada por parvus. Los dos lo hacen en «Propiedades del Proyecto» -> «C/C++ General» -> «los Caminos y los Símbolos»:

    1. Existentes en un proyecto en el que ya has configurado las rutas de inclusión: Resaltar las rutas de inclusión (en la pestaña «Incluye») que desea copiar en el nuevo proyecto y seleccione «Exportar». Tenga en cuenta que esto añade un [Exp] etiqueta a cada línea.
    2. En el nuevo proyecto: En la sección «Referencias» de la ficha, marque la casilla de verificación de los que acabamos de mencionar proyecto y al volver a la «Incluye» ficha, verá que todos los caminos que acabas de exportar aparecen allí.

    Referencia a las bibliotecas funciona de la misma manera.

    También tiene una mirada en:

    • No he sido capaz de hacer la inclusión de librerías para trabajar en la misma forma como lo has descrito, cuando se trabaja en Eclipse IDE para Desarrolladores C/C++. Versión: Marte Liberación (4.5.0). Id de Build: 20150621-1200.
  3. 7

    A menudo uso la CPATH variable de entorno para incluir diferentes directorios en todos mis proyectos. Se encuentra en: c/c++->construir->medio ambiente.
    Asegúrese de separar cada ruta con un ‘:’ personaje (no un ‘;’ punto y coma).

    También puede usar la RUTA para incluir bibliotecas estáticas. Sin embargo, para mí es sólo funcionaba bien en linux. En OSX arruina a hacer.

    La alternativa sería añadir estas bibliotecas y cabeceras de sus entornos de búsqueda predeterminado caminos; lugar me gusta /usr/local/lib. Leer en donde su enlazador de búsquedas por defecto.

    • Configuración de CPATH en eclipse es bueno para arreglar las cosas para todos los proyectos (si es repeatible configuración). Puedo tener otro CPATH fuera de eclipse.
  4. 5

    Para las bibliotecas hago lo siguiente en el proyecto de origen:

    Proyecto -> propiedades -> c/c++Build -> c++ linker -> bibliotecas

    Después de esto yo seleccione las bibliotecas (shift + ratón) & copiar (ctrl + c)

    En el proyecto en blanco:

    Proyecto -> propiedades -> c/c++Build -> c++ linker -> bibliotecas

    ctrl + v (pegar)

    Funciona bien con eclipse juno

    • Lo que sobre para el IDE de Eclipse para Desarrolladores C/C++. Versión: Marte Liberación (4.5.0). Id de Build: 20150621-1200?
  5. 3

    Acabo de copiar un proyecto de uso de eclipse, construido en el explorador de Proyectos. Después, sólo cambiar el nombre de los archivos de origen.

  6. 1

    Estoy buscando hace mucho tiempo.
    Un par de puestos de dicho método:
    Proyecto > Propiedades > C/C++ General > los Caminos y los Símbolos y, a Continuación, haga clic en Ajustes de Exportación..
    Pero sólo funciona para la inclusión de los archivos de encabezado.

    Para especificar las bibliotecas y de sus caminos, por lo que yo sé, no me parece una solución fácil.
    Por ejemplo, ahora estoy usando librerías ffmpeg.
    Si utiliza el «Makefile», el que incluye y archivos de la biblioteca pueden ser expresadas a continuación:

    FFMPEG_LIBS= libavdevice

    libavformat

    libavfilter

    libavcodec

    libswresample

    libswscale

    libavutil

    CFLAGS := $(shell pkg-config –cflags $(FFMPEG_LIBS)) $(CFLAGS) LDLIBS
    := $(shell pkg-config –libs $(FFMPEG_LIBS)) $(LDLIBS)

    Hay muchos archivos aquí.
    Si tengo que incluir en ellos uno por uno en un Eclipse proyecto de C++, es desalentador.
    No sé por qué no hay ninguna opción en Eclipse que podríamos incluir los archivos de la biblioteca mediante el uso de un pasado de largo la utilización de la línea ; como separador, tales como:

    -lavdevice -lavfilter -lswresample -lswscale -lavformat -lavcodec -ldl -lasound -lSDL -lz -lrt-lavutil -lm

    Es allí cualquier manera, o tengo que teclear la biblioteca de archivos de uno en uno, o tener que usar Makefile?

    • Por CIERTO, yo una vez traté de pkg-config plug-in para Eclipse, que no trabajo para una biblioteca que he probado. Déjame intentarlo, ya que supongo que el anterior fallo puede ser debido a un error. Pero de todos modos, creo que sería bonito tener una opción para usar una línea para especificar los archivos de la biblioteca.
    • Creo que encontrar una manera. Ir a Propiedades -> C/C++ Build -> Ajustes -> GCC C++ Linker -> Misceláneos -> Enlazador, podría escribir «-lavdevice», etc para especificar las bibliotecas.
  7. 0

    Me enfrentó el mismo problema y lo resolví así :
    Vi que en el auto-generado makefile hay líneas:

    -include ../makefile.init
     ...
    -include ../makefile.defs
     ...
    -include ../makefile.targets

    después de leer ¿Cómo puedo parametrizar un Eclipse generado archivo me di cuenta de que se pueden definir variables fuera de tu proyecto. Que significa que puede ser variable compartida para varios proyectos. Así que he añadido el fichero makefile.defs archivo fuera del proyecto y declarar en algunas variables:

    MY_INCLUDE = <path to include>...
    MY_LIBS_PATH = <path to libs>...
    MY_LIBS = -lmylib ... (the libs)

    que en todos mis proyectos «propiedades->c/c++ build->construir las variables» he definido nueva variable:

    my_include = $(MY_INCLUDE)
    my_libs_path = $(MYLIBS_PATH)
    my_libs = $(MY_LIBS)

    Y que puede que esas variables en los proyectos. Ir a propiedades->c/c++ build->Configuración y elegir compilador incluye y agregar $(my_include). Ir a enlazador y elegir las Bibliotecas y añadir a la ruta de búsqueda $(my_libs_path). Por alguna razón las Bibliotecas (-l) no puedo quitar mis definido env variables, por lo que puedo prescindir de ella por la elección de vinculador y de ir a la Miscelánea y agregar a enlazador $(my_libs). Finalmente, usted tiene que cambiar el orden en la línea de comandos (cuando el enlazador de ejecución) para causar la lista de librerías necesidad de venir después de la .o archivos. Así que para hacer que usted vaya a enlazador y ficha y no se puede ver el final de la línea de comandos que se van a ejecutar. En «ajustes de expertos de la línea de comandos patrón de» mover el ${BANDERAS} a la parte de atrás de la línea de comandos (que se mueve el $(my_libs) de la cadena ser en la parte de atrás de la línea de comandos). QUE TODOS. su mucho, pero tienes que hacerlo solo una vez… la esperanza de que ayude a alguien…

  8. 0

    Semi-automáticamente, se puede hacer uso de este script de perl:

    #!/usr/bin/perl
    
    # pipe the (gcc) compile command into this script
    # It emits listOptionValue lines to paste into .cproject
    #
    # To easily find the paste location, set the include path as usual to a string 
    # that is easily recognizable in the .cproject, e.g. to "MARKER_INCLUDE_PATH".
    #
    # Make sure eclipse is not running while you do these sorts of hacks and backup 
    # your .cproject before.
    # -----------------------------------------------------------------------------------------
    # sample line: <listOptionValue builtIn="false" value="/usr/include/gdk-pixbuf-2.0"/>
    
    while (<>) {
        @include_options = m#-I *(.*?) #g;
        print join ("\n", @include_options) . "\n";
        print join ('"/>' ."\n" . '                                 <listOptionValue builtIn="false" value="', @include_options);
        print '"/>' . "\n";
    }

Dejar respuesta

Please enter your comment!
Please enter your name here