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
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