2009-08-29 17 views
12

Estoy tratando de agregar una biblioteca a Eclipse Galileo y no funcionará.Cómo agregar una biblioteca a un proyecto de Eclipse

Biblioteca: gdi32.lib -> En MinGW: libgdi32.a

Lo que lo intento, no funciona. ¿Alguien puede decirme EXACTAMENTE en qué ingresar, para lograr esto?

Detalles:

tengo la función de llamada:

wndclassex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); 

... de inducir a error:

WinMain.o: In function `WinMain': 
Z:/mtsts_workspace/MTSTS/Debug/../WinMain.c:29: 
    undefined reference to `[email protected]' 

y tengo la función de llamada:

TextOut(hdc, 0, 0, TEXT("Hello World!"), 12); 

... conduce al error:

WinMain.o: In function `WndProc': 
Z:/mtsts_workspace/MTSTS/Debug/../WinMain.c:88: 
    undefined reference to `[email protected]' 
+0

¿Aparece un mensaje de error? Si es así, ¿podría agregarlo a su pregunta? –

Respuesta

17

haga clic derecho para proyectar -> Propiedades -> C/C++ Build, vaya a la Biblioteca y agréguela allí.

si la biblioteca es libgdi32.a, debe agregar gdi32 en la sección de la biblioteca.

+2

¡Gracias! Lo que no sabía, era que para usar libgdi32.a tienes que ingresar gdi32! –

+3

En la secuencia de pasos faltan dos pasos: Proyecto -> Propiedades -> C/C++ Build -> Configuración -> GCC C++ Linker -> Bibliotecas – Roman

+1

La interfaz actual del menú CDT es completamente diferente y todavía no he encontrado la información correcta . Quiero vincular con libxcb, que normalmente harías con -lxcb. Desde la línea de comando, eso es lo único que tengo que agregar. Tengo la versión Eclipse CDT Juno. C/C++ Build -> Configuración no tiene tales configuraciones, solo tiene "analizadores binarios". Intenté agregarlo a C/C++ Build -> Rutas y símbolos, pestaña Libraries, pero eso no afecta al Makefile, por lo que debe estar en el lugar equivocado. –

5

Si en Eclipse 3.5 el lugar para añadir es Proyecto-> propiedades-> C++ Generar-> Configuración A continuación, seleccione la cadena de herramientas que está utilizando a continuación, en bibliotecas y añadir el nombre de la biblioteca a la caja superior y el camino hacia la parte inferior

+0

¿Hay un lugar estándar donde se especifica el nombre de la biblioteca (el que se debe agregar en la parte superior)? es decir, ¿cómo sabe uno que glut32.lib es "glut32" y libgdi32.a es "gdi32"? –

+2

Depende del sistema operativo: Windows es name.lib y unix es libnam.so o libname.a o libname.dylib – Mark

0

Tengo el problema similar. Como Mark sugirió, en project-> properties-> C++ Build-> Settings, tenemos que agregar

1) nombre de la biblioteca (por ejemplo: libsnap7.so, solo snap7 es el nombre) 2) ruta de la biblioteca (ej. :/usr/lib)

Problema no resuelto hasta que hago esto.

Cuestiones relacionadas