Visual Studio 201x - Externe Libraries in eigenem Library-Projekt

Elandril

Mitglied
Hallo,

ich bastel seit einiger Zeit an einer Library, die OpenGL Funktionen enthält. Bislang habe ich eigentlich nur eine Debug-Konfiguration verwendet. Am Wochenende wollte ich einem Bekannten dann eine Anwendung zum Testen geben und, da er mit großer Sicherheit keine Debug-DLLs auf dem Rechner hat, habe ich eine Release-Konfiguration gebaut.

Mein Problem momentan ist, dass ich externe Libraries (z.B. FreeImage) bisher einfach als Debug in einem Lib-Filter dem Lib-Projekt hinzugefügt habe und die wurden dann automatisch dazu gelinkt, wenn ich den Lib-Code erstellt habe. Da steht man allerdings vor dem Problem, dass unabhängig von der gewählten Konfiguration alle Libs, die so im Projekt enthalten sind, gelinkt werden. Da es sich um Debug- und Release-Versionen der externen Libs handelt, und die ersten gefundenen Libs gelinkt und alle neu definierten Symbole ignoriert werden, führt das natürlich dann zu Problemen im eigentlichen Anwendungs-Code.

Also habe ich fürs erste alle Libs aus dem Lib-Projekt geworden und die benötigten externen Libs abhängig von der Konfiguration dann im App-Projekt dazu gelinkt. Das Funktioniert einstweilen, empfinde ich aber auch irgendwie als unschön, weil ich gern ein komplettes Paket gehabt hätte (vor allem können es in Zukunft noch eine ganze Reihe von Libs werden, die ich ungern alle so angeben möchte).

Eine Alternative (die aber noch unschöner ist) wäre, die Libs aus dem Lib-Projekt einzubinden bzw. zu entfernen, je nach Konfiguration.

Meine Frage ist also daher, ob es eine elegante Möglichkeit in Visual Studio gibt, wie man ein Lib-Projekt entsprechend der Konfiguration mit externen Libraries versehen kann. Leider gibt es nämlich irgendwie in diesem Lib-Projekt nicht die sonst übliche Linker-Stage in den Projekt-Einstellungen, wo man diese Libs hinzufügen könnte...

#ifdev DEBUG
#pragma...

ist auch nicht so schön, finde ich...

Falls jemand Ideen hat...

schöne Grüße und Danke soweit
 
Also Visual Studio bietet dir an die Linkeroptionen für jede Konfiguration separat einzustellen:
Hier für Release und Debug:
50b00aed37edb6_release.jpg

50b00afeb98a57_debug.png
 
Hallo,

Danke dir soweit,

gerade diesen Linker-Eintrag habe ich beim Erstellen meiner Lib leider irgendwie nicht zur Verfügung. Hätte das sonst gern so gemacht... Oh gott, ich glaube, die haben den extra für Libs umbenannt... "Bibliothekar"... Ich teste mal... Danke soweit
 
Ach, du erstellst eine lib, da heisst der nicht linker sondern librarian (Bibliothekar), die entsprechende Einstellung ist:
Properties -> Librarian -> General -> Additional Dependencies
 

Neue Beiträge

Zurück