VC++ und der Bin-Ordner beim Ausführen
-
Hi Leute!
Ich habe da ein kleines Problemchen beim Ausführen von Programmen.Ganz kurz zum Projekt:
Es besteht aus 4 DLLs, und rund 20 Anwendungen, die auf diese DLLs angewiesen sind.
Da sich das Ding noch in der Entwicklungsphase befindet, habe ich keine Lust, bei jedem Rebuild einer der DLLs die DLL in jedes Verzeichniss einzeln zu verschieben.
Also habe ich per PostBuild-Ereigniss (beim Build der DLLs) die erstellte DLL in einen "bin"-Ordner gepacktm wo immer die neusten Versionen der DLLs drin sind.
Also schnell in
"Extras->Optionen->Projekte und Projektmappen->VC++-Verzeichnisse->Ausführbare Datein"
meinen "bin" eingetragen.Aber wenn ich jetzt so ein Programm starten will (von VC++ aus, wegen Debugger) kommt, dass er die DLL nicht finden kann.
Habe ich mit dem Eintragen des bin-Ordners irgendetwas falsch gemacht?
-
Das klappt bei mir:
http://blog.speedproject.de/2008/05/30/vs-2008-projektspezifische-umgebungsvariablen/
-
Nuja, da müsste ich das aber bei ALLEN Projekten machen. Währe aber auch ne Möglichkeit.
Ich meine mit den Libs geht's doch auch, die muss ich auch nicht kopieren.
-
> "Extras->Optionen->Projekte und Projektmappen->VC++-Verzeichnisse->Ausführbare Datein"
Die Einstellung gibt bloss an wo die IDE selbst diverse Tools (C-Compiler, C++ Compiler, Linker, MIDL-Compiler, Resource-Compiler etc.) sucht.Du könntest einen "Pfad" auf die Verzeichnisse setzen, also im Windows selbst.
Und bei LIBs "geht es" weil er die .lib beim Ausführen ja nichtmehr braucht, die wird ja beim Linken mit in die .exe/.dll eingebunden.
-
Naja, ein versuch war's Wert!
-
Hallo,
Blaze schrieb:
Habe ich mit dem Eintragen des bin-Ordners irgendetwas falsch gemacht?
Ich lasse die Binaries nach dem Compilieren auch automatisch in ein gemeinsames bin-Verzeichnis kopieren. Das bin-Verzeichnis ist im Windows-Suchpfad als erstes Verzeichnis eingetragen.
Gruss
foodax
-
Blaze schrieb:
Nuja, da müsste ich das aber bei ALLEN Projekten machen. Währe aber auch ne Möglichkeit.
Ja, ist aber relativ schnell erledigt. Gegenüber einem über die PATH-Variable eingebundenen Verzeichnis hat diese Variante den Vorteil, dass es bei x64/x32-Konfigurationen keine negativen Seiteneffekte gibt. Zudem werden bei der friedlichen Koexistenz mehrerer Versionsstände eines Projekts immer die richtigen Dlls referenziert.
-
Wenn Du das Ausgabeverzeichnis auf ein gemeinsames BIN Verzeichnis änderst hat das auch den großen Vorteil, dass Du wirklich am Ende einesn Ordner hast in dem sich alle Executables sammeln und diese nicht zusammen mit anderen OBJ und LIB Dateien vermischt sind.
Ich denke das ist der beste Ansatz.