2012-01-12 20 views
6

Ahora estoy usando eclipse CDT para mi aplicación C/C++, pero hay un problema cuando enlazo mi biblioteca externa, no se pudo cargar correctamente en tiempo de ejecución, incluso cuando puse la biblioteca archivo cerca del archivo fuente, di la ruta de la biblioteca, y su nombre es correcto.C++: biblioteca externa en Eclipse CDT

directorio

proyecto: (. .cpp archivos ..)

  1. incluyen (.h)
  2. fuente
  3. lib (libbozorth3.a, LSFMatcher.a)

Quiero vincular las bibliotecas estáticas con mi aplicación. Sigo estos pasos:

  1. project-> properties-> general-> path and symbols-> include directory path, y libraries (bozorth3.a, LSFMatcher.a), y agrega la ruta de la biblioteca.
  2. y También agrego la misma biblioteca en la sección enlazador también

Cuando construyo el programa que muestra un error de no puede encontrar -lbozorth3.a no puede encontrar -lLSFMatcher.a

Así que necesito los pasos correctos para agregar la biblioteca externa a la aplicación c/C++.

+0

¿Consideró: http://stackoverflow.com/questions/8370809/how-to-add-a-library-to-eclipse-c-project? – Dyonisos

Respuesta

12

que normalmente se configura

  1. la biblioteca
  2. la ruta de búsqueda de biblioteca (necesario para compiliation)
  3. la ruta de búsqueda en tiempo de ejecución (-rpath opción del vinculador)

(ver imágenes a continuación e intercambia la ruta en las banderas de Enlazador a la que usaste en la ruta de búsqueda de la biblioteca)

Library Search path Linker options for runtime search path

1

se debe utilizar -Wl,-rpath=${workspace_loc}/Liball y no -Wl,-rpath,${workspace_loc}/Liball.

También en la biblioteca -l opción agregar una biblioteca como, por ejemplo. para libgcc.a agregue solo gcc

+0

Esta no es una respuesta completa. Depende de la respuesta ofrecida por FSaccilotto. Tal vez deberías moverlo a un comentario para que pueda corregir su publicación, o deberías agregar más detalles al tuyo para que sea una respuesta completa. – Dzyann

0

Debe prestar atención a lo que está entre paréntesis: Otras opciones (-Xlinker [opción]).

La forma de pasar las opciones es diferente. En lugar de utilizar:

-Wl,-rpath,'${ProjDirPath}/../../system/lib' 

Debe utilizar:

-rpath '${ProjDirPath}/../../system/lib' 

Es decir, eliminar el "-Wl", y sustituir la segunda "" por "" (espacio).

enter image description here

enter image description here

Cuestiones relacionadas