2009-03-19 5 views
2

Ich versuche ein Programm zu erhalten, das vor 5 Jahren in VC++ 6.0 geschrieben wurde. Es nutzt unsere "gemeinsamen" Bibliotheken. Das Problem ist, dass es entweder mit der Debug-Version dieser Bibliotheken oder mit der Release-Version verknüpft ist, je nachdem, ob ich die [Verzeichnisse] für [Bibliotheksdateien] auf "common/debug" oder "common/release" in [ Extras] -> [Optionen].Wie kann ich in VC++ 6.0 automatisch mit den Debug/Release-Bibliotheken verknüpfen?

Wie bekomme ich es beim Erstellen der Debug-Version und [common \ release \ common.lib] beim Erstellen der Release-Version mit [common \ debug \ common.lib] zu verknüpfen? Wenn ich beide Pfade in den Bibliotheksverzeichnissen habe, scheint es mit der ersten verlinkt zu sein.

Antwort

0

Sie können den vollständigen Pfad der zu verknüpfenden Bibliothek im Feld Weitere Abhängigkeiten angeben. Dies kann unterschiedliche Werte für Debug- und Release-Builds haben.

1

In [Projekteigenschaften] -> [Linker] -> [Eingabe] -> [Zusätzliche Abhängigkeiten] Sie die $ verwenden können (Configurationname) Platzhalter, wie folgt aus:

c:\common\$(ConfigurationName)\common.lib 

In der Debug-Konfiguration wird dies ändern:

c:\common\Debug\common.lib 

und in Release wird es ändern:

c:\common\Release\common.lib 
+0

Leider ist dieser Unsinn. Ich habe den 6.0 Teil VC++ der Frage ist das oben für VS2008.Ich glaube nicht, dass VC6 Platzhalter wie folgt erlaubt.Ich würde mit Richards Antwort gehen. – demoncodemonkey

1

Wenn ich beide Pfade in den Bibliotheksverzeichnissen habe, scheint es mit der ersten zu verlinken, die es findet.

Fügen Sie einfach den Debug-Ordner für die Debug-Einstellungen und den Release-Ordner für die Release-Einstellungen hinzu.

Fast alle Compiler, Verknüpfung usw. Einstellungen pro Konfiguration sind (die Projekteigenschaften werden die Einstellungen als Rohling in „allen Konfigurationen“ zeigen (wenn ich den richtigen Text erinnern), wenn Debug und Release unterschiedlich sind.

0

Die Lösung ich habe ein wenig wie & Richards „1800 Information“ gefunden 's ...

ich die Gemeinsame Bibliothekspfad von Tools->Options entfernt. die Wege hier in allen Konfigurationen aller Projekte weltweit laufen in MSVS VC++ 6.0.

Ich fügte dann einen vollständigen Pfad zu den entsprechende Bibliothek in Project->Settings für jede Konfiguration. Hat die Debug-Konfiguration D:\VSS\Common\Debug\Common.lib und die Release-Konfiguration hat D:\VSS\Common\Release\Common.lib. Das scheint zu funktionieren und zum ersten Mal habe ich keine Build-Warnungen!

Danke an alle Vorschläge, die mich auf die richtige Richtung hinweisen.

--- Alistair.

3

Anstatt die Pfade in den Include-Ordner anzugeben und alle der beste Weg, i die Bibliotheken auf der Konfiguration enthalten verwenden, um abhängig ist von Pragma mit

dies einmal versuchen, es ist sehr nützlich

ifdef _DEBUG

Pragma-Kommentar (lib, ".. \ DllTest \ Debug \ DllTest.lib ")

sonst

Pragma comment (lib," .. \ DllTest \ Release \ DllTest.lib ")

endif

Verwandte Themen