Das Verknüpfen mit C ++ - Bibliotheken erfordert viel Aufwand und erfordert viel Wissen und Mühe, um es richtig zu machen. Es kann für C ++ - Lernende einschüchternd sein.
Häufig berücksichtigen die Autoren / Betreuer einer bestimmten C ++ - Bibliothek dies und empfehlen dies auf die eine oder andere Weise.
Mit anderen Worten, wenn die Autoren / Betreuer beabsichtigen, dass die Bibliothek durch Header (* .h und .hpp) oder durch Quelle ( .h * oder .c ) eingeschlossen wird, hätte dies in der Readme- Datei klar gesagt oder Dokumentation.
Bibliotheken, die plattformübergreifend entworfen und verwaltet werden (und mit mehreren C ++ - Compilerherstellern und -Umgebungen kompatibel sind), verfügen häufig über ein Makefile-System oder ein Build-Konfigurationssystem (z. B. CMake). Diese Systeme werden verwendet, um Header-Shims zu generieren, die Plattformunterschiede ausgleichen, und um Skripts zu generieren, mit denen der Compiler und der Linker für Quelldateien mit den richtigen Befehlszeilenoptionen und in der richtigen Reihenfolge aufgerufen werden. Je nach Plattform und Konfiguration können diese Erstellungssysteme bestimmte Header oder Quelldateien einschließen oder ausschließen oder bestimmte Präprozessorsymbole definieren oder deren Definition aufheben.
Ein Widerspruch gegen die Empfehlung des Autors / Betreuers ist möglich, erfordert aber immer einen umfangreichen Portierungsaufwand. Der für diese Portierung erforderliche Arbeitsaufwand kann mit der Portierung in eine andere C ++ - Umgebung vergleichbar sein.
Da Visual C ++ ein eigenes Build-System verwendet, das auf einer Projektbeschreibungsdatei (teilweise XML-basiert) basiert, unterscheidet es sich erheblich von dem unter Linux verwendeten skriptbasierten Build-System. Der von CMake verwendete Ansatz besteht darin, dass CMake die Konfigurationseinstellungen übernimmt und dann die gesamte Visual C ++ - Projektstruktur mit den Konfigurationsoptionen ausgibt, die in den * .vcxproj-Dateien gespeichert sind.
Wenn während der C ++ - Verknüpfung mit Visual C ++ Probleme auftreten, können die Buildeinstellungen in * .vcxproj-Dateien über die Visual Studio-GUI (über das Dialogfeld mit den Projekteigenschaften) geändert werden. Dies setzt voraus, dass Sie die Bedeutung und die Konsequenzen eines Dutzend wichtiger C ++ - Kompilierungs- und Verknüpfungseinstellungen genau kennen.
Jetzt kommt der dümmste Teil der Verwendung von Visual C ++: Wenn Sie ein Dutzend verschiedener Bibliotheken von Drittanbietern verwenden, müssen Sie die Build-Einstellungen für alle ändern, indem Sie in jede * .vcxproj-Datei gehen und dieselbe Änderung in der GUI für ein Dutzend wiederholen mal. Ein Ärger, aber es kann getan werden, wenn Sie wissen, wie man es richtig macht.
Die meisten Visual C ++ - Lerner lernen diese Einstellungen auf die harte Tour, indem sie Visual C ++ - Compiler- und Linker-Fehler beobachten, die durch ihren Fehlercode identifiziert werden. Zum Beispiel kann man LNK2005 mit der oberflächlichen Bedeutung von "Das Symbol Symbol wurde mehr als einmal definiert" nachschlagen, aber mit dem Verständnis, dass die doppelte Definition nicht durch einen unachtsamen Programmierfehler entstanden ist, sondern aufgrund einiger Fehler hätte passieren können Konflikte oder fehlerhafte Anwendung von Kompilierungs- und Verknüpfungsoptionen.
Um eine spezifischere und nützlichere Antwort auf Ihre Situation zu erhalten, müssen Sie die Namen der Bibliotheken kennen, die Sie verwenden möchten, sowie die Verknüpfungsfehler oder andere Schwierigkeiten, auf die Sie stoßen. Antworten auf diese Fragen finden Sie möglicherweise in den Diskussionsforen der jeweiligen Bibliothek. Diese Fragen sind in der Regel mit "Verknüpfungsproblemen", "Windows" und "Visual C ++" gekennzeichnet.
Ein Leitfaden für Anfänger und Experten zu diesem Thema ist möglich, wird jedoch projektspezifisch sein. Unterschiedliche Präferenzen, die von verschiedenen Projekten ausgewählt wurden, erfordern eine vollständige Überarbeitung des Handbuchs.