2012-10-10 7 views
10

Ich stieß auf ein Stück Code, der #pragma Kommentar (lib, "Bibliotheksname") verwendet.C++ Visual Studio: Verknüpfung mit Pragma-Kommentar

Warum diese Art der Verwendung im Gegensatz zu nur die Bibliothek aus dem Eigenschaftenmenü verknüpfen? In welchen Situationen ist diese Nutzung erforderlich? Ich bin in Windows mit C++ Visual Studio 2010.

Es wäre schön, ein Beispiel zu sehen, das diese Art der Nutzung erfordert.

Antwort

18

Der Bibliotheksschreiber kann einen #pragma comment(lib, ...)-Befehl in der öffentlichen Headerdatei (.h) ablegen. In diesem Fall muss der Client diese Bibliothek nicht zur Linkerabhängigkeitsliste hinzufügen. Durch die Einbindung einer h-Datei in das Programm wird der Client automatisch mit der benötigten Bibliothek verbunden.

+0

Muss ich in diesem Fall die Bibliothek auch physikalisch zum visusal sutudio Projekt hinzufügen? – user1612986

+4

Nein, aber die Bibliothek muss im Suchpfad der verfügbaren Bibliothek sein – WhozCraig

+0

Danke Peter. Das ist hilfreich. –

13

Klassisches Beispiel - Verknüpfung mit verschiedenen Versionen der Bibliothek.

#if CURRENT_VERSION >= 10 
    #pragma comment(lib, "thirdPartyLibV2.0.lib") 
#else //version < 10 
    #pragma comment(lib, "thirdPartyLibV1.0.lib") 
#endif 
2

Es ist in dem Sinne enthalten ist, dass alle es für die zugehörige Bibliothek ist einschließlich der Header-Datei erfolgt automatisch eingezogen werden können Sie selbst tun #ifdef..#endif Magie, um die richtige Bibliothek basierend auf Ihrer Umgebung bedingt einzubringen.

Nicht jeder wird Ihr MSVC-Projekt verwenden, wenn Sie ein neues Projekt von Grund auf neu starten, einfach in der Lage #include und es Arbeit zu haben ist das Zeichen einer gut geschriebenen Bibliothek.