Problemas al importar bibliotecas a mi proyecto de C++, ¿cómo solucionarlo?

Resuelto πάντα ῥεῖ asked hace 10 años • 2 respuestas

Estoy usando el <XZY>IDE para compilar mi programa y tengo algunos problemas para importar/integrar una biblioteca específica con él.

Recibo mensajes de error como

fatal error: 3rdPartyLib.h: No such file or directory

para

#include "3rdPartyLib.h"

declaración

ld.exe: cannot find `lib3rdParty.a`

para especificar

3rdParty

en las bibliotecas adicionales

Al menos recibí algún mensaje de error como

undefined reference to `lib3rdParty::foo()'

¿Qué puedo hacer para arreglar esto?

πάντα ῥεῖ avatar Jul 13 '14 01:07 πάντα ῥεῖ
Aceptado

Es un error común pensar que el IDE utilizado actualmente es responsable de generar errores como los que se indican en la pregunta.
ver por ejemplo

  • c++ lib en dos mismos proyectos, uno puede funcionar pero el otro no
  • Problema al vincular bibliotecas libxml++ y simplista con CodeBlocks IDE para C++ Windows
  • ...

El problema casi nunca está relacionado con el IDE utilizado actualmente.
En la mayoría de los casos, la solución se reduce a proporcionar al compilador/enlazador de la cadena de herramientas la ruta adecuada para buscar los encabezados incluidos y las bibliotecas vinculadas.

Una de las principales respuestas aplicables a los problemas relacionados con el enlazador es

  • ¿Qué es un error de referencia indefinida/símbolo externo no resuelto y cómo lo soluciono?
  • referencia indefinida a `WinMain@16'

La mayoría de los IDE comunes proporcionan funciones para configurar esto para un proyecto específico. Aquí hay algunas muestras


Eclipse-CDT

Incluir configuración de ruta: ingrese la descripción de la imagen aquí

Configuración de la ruta de búsqueda de bibliotecas y bibliotecas ingrese la descripción de la imagen aquí


Estudio visual 2013

ingrese la descripción de la imagen aquí


Bloques de código ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí


**DEV C++ (Derramado de sangre C++)

A partir de sus preguntas frecuentes:

9. ¿Cómo puedo utilizar la biblioteca OpenGL y otras?

Todas las bibliotecas que vienen con Mingw residen en el directorio Lib. Todos se nombran de la siguiente manera: lib*.a Para vincular una biblioteca con su proyecto, simplemente agregue Opciones del proyecto, Más archivos de opciones:
-lopengl32
Esto es para incluir la libopengl32.abiblioteca. Para agregar cualquier otra biblioteca, simplemente siga la misma sintaxis: escriba -l(L en minúscula) más el nombre base de la biblioteca (nombre de archivo sin liby la .aextensión).

También puede considerar poner una -Lopción allí para agregar rutas de directorio buscadas para bibliotecas.


Creador de Qt

Para agregar rutas de inclusión, debe abrir el archivo .pro y luego agregar los directorios a la INCLUDEPATHvariable. Estos caminos están separados por espacios. La referencia se puede encontrar aquí .

Mostrando INCLUDEPATH


Si ninguno de los ejemplos anteriores se aplica a su IDE/cadena de herramientas realmente utilizada, espero que pueda entender el punto de abstracción:

Es un problema cómo proporcionar opciones de compilación/vinculación a su cadena de herramientas real. El IDE utilizado para configurar el contexto es un punto menor aquí.

πάντα ῥεῖ avatar Jul 12 '2014 18:07 πάντα ῥεῖ

Para eclipse utilizo el pkg-configcomplemento siempre que sea posible:

https://marketplace.eclipse.org/content/pkg-config-support-eclipse-cdt

En su defecto esta ventana de configuración:

ingrese la descripción de la imagen aquí

Galik avatar May 23 '2015 13:05 Galik