Probleme beim Importieren von Bibliotheken in mein C++-Projekt, wie kann ich das beheben?

Lesezeit: 2 Minuten

Probleme beim Importieren von Bibliotheken in mein C Projekt wie kann
πάντα ῥεῖ

Ich benutze die <XZY> IDE, um mein Programm zu kompilieren, und habe einige Probleme, eine bestimmte Bibliothek damit zu importieren/integrieren.

Ich bekomme Fehlermeldungen wie

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

Für ein

#include "3rdPartyLib.h"

Aussage

ld.exe: cannot find `lib3rdParty.a`

zum spezifizieren

3rdParty

in den Zusatzbibliotheken

Zumindest habe ich eine Fehlermeldung wie

undefined reference to `lib3rdParty::foo()'

Was kann ich tun, um das zu beheben?

Es ist ein weit verbreitetes Missverständnis, dass die aktuell verwendete IDE dafür verantwortlich ist, Fehler wie in der Frage angegeben zu erhalten.
Siehe zum Beispiel

  • c++ lib in zwei gleichen Projekten, eine kann funktionieren, die andere nicht
  • Problem beim Linken von libxml++- und glib-Bibliotheken mit CodeBlocks IDE für C++ Windows

Das Problem hängt fast nie mit der aktuell verwendeten IDE zusammen.
In den meisten Fällen läuft die Lösung darauf hinaus, den Compiler/Linker der eigentlichen Toolchain mit den entsprechenden Pfaden zu versorgen, um nach enthaltenen Headern zu suchen, um Bibliotheken zu verknüpfen.

Eine der wichtigsten anwendbaren Antworten für die Linker-bezogenen Probleme sind

  • Was ist ein undefinierter Verweis/ungelöster externer Symbolfehler und wie behebe ich ihn?
  • undefinierter Verweis auf `WinMain@16′

Die meisten gängigen IDEs bieten Funktionen, um dies für ein bestimmtes Projekt zu konfigurieren. Hier sind einige Beispiele


Eclipse-CDT

Pfadeinstellungen einschließen:
Geben Sie hier die Bildbeschreibung ein

Bibliotheks- und Bibliothekssuchpfadeinstellungen
Geben Sie hier die Bildbeschreibung ein


Visual Studio 2013

Geben Sie hier die Bildbeschreibung ein


Code-Blöcke
Geben Sie hier die Bildbeschreibung ein
Geben Sie hier die Bildbeschreibung ein


**DEV C++ (Blutvergießen C++)

Aus ihrer FAQ:

9. Wie kann ich die OpenGL-Bibliothek und andere verwenden?

Alle Bibliotheken, die mit Mingw geliefert werden, befinden sich im Lib-Verzeichnis. Sie werden alle folgendermaßen benannt: lib*.a
Um eine Bibliothek mit Ihrem Projekt zu verknüpfen, fügen Sie einfach Projektoptionen, weitere Optionsdateien hinzu:
-lopengl32

Dies dient zum Einschließen der libopengl32.a Bücherei. Um eine andere Bibliothek hinzuzufügen, folgen Sie einfach derselben Syntax: Type -l (L in Kleinbuchstaben) plus den Basisnamen der Bibliothek (Dateiname ohne lib und das .a Verlängerung).

Sie können auch erwägen, a zu setzen -L Option dort, um nach Bibliotheken durchsuchte Verzeichnispfade hinzuzufügen.


Qt-Creator

Um Include-Pfade hinzuzufügen, müssen Sie die .pro-Datei öffnen und dann die Verzeichnisse hinzufügen INCLUDEPATH Variable. Diese Pfade sind durch Leerzeichen getrennt. Referenz kann gefunden werden Hier.

INCLUDEPATH wird angezeigt


Wenn keines der oben genannten Beispiele auf Ihre tatsächlich verwendete IDE/Toolchain zutrifft, können Sie hoffentlich den Punkt der Abstraktion verstehen:

Es ist ein Problem, wie Sie Kompilierungs-/Verknüpfungsoptionen für Ihre tatsächliche Toolchain bereitstellen. Die zum Einrichten des Kontexts verwendete IDE ist hier ein untergeordneter Punkt.

1647191407 433 Probleme beim Importieren von Bibliotheken in mein C Projekt wie kann
Galik

Zum Finsternis Ich verwende das pkg-config Plugin wo möglich:

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

Andernfalls dieses Konfigurationsfenster:

Geben Sie hier die Bildbeschreibung ein

998500cookie-checkProbleme beim Importieren von Bibliotheken in mein C++-Projekt, wie kann ich das beheben?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy