Probleme mit STLport und VS 2008 Express
-
Habe ein Problem mit o.g. Konfiguration.
Ich benutze Visual C++ 2008 Express und möchte aus bestimmten Gründen die STLport verwenden (habe 5.2.1).
Die STLport ließ sich auch wunderbar bauen. Dann habe ich im Studio die Include und Library-Pfade in den VC++-Verzeichnissen hinzugefügt, und zwar an die erste Stelle, wie sich das gehört.
Beim Codieren funktioniert auch alles wunderbar (im Editor werden die STLport-Elemente vorgeschlagen, z.B. hash_map), Compilieren und Linken ist ebenfalls vom Feinsten.
Nur, wenn ich dann versuche, das Programm auszuführen, bekomme ich die lapidare Fehlermeldung"Die Anwendung konnte nicht gestartet werden, weil stlport.5.2.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben."
Ich bin mir ziemlich sicher, dass die stlport.5.2.dll (bzw. stlportd.5.2.dll) gefunden werden müsste, nach tausend Versuchen, den Pfad zu setzen und Umkopieren der DLL in verschiedene Verzeichnisse.
Inzwischen habe ich die STLport noch einmal neu gebaut und an eine andere Stelle gesetzt, aber immer noch das selbe.....Kann mir jemand helfen?
Gruß, Thomas
-
Explorer64 schrieb:
Ich benutze Visual C++ 2008 Express und möchte aus bestimmten Gründen die STLport verwenden (habe 5.2.1).
Sofern die Angaben von der STLPort-Seite stimmen, wird der Compiler nicht unterstützt. Zudem wenn ich kurz ins Forum schaue, scheint auch kein Interesse mehr an der Windowsplattform zu bestehen.
Darf ich mal fragen warum du unbedingt STLport einsetzen willst?
-
So, nach endlich vielen Mühen habe ich das Problem gelöst.
Windows sucht seine dlls offenbar über die PATH-Variable.
Also: <Pfad zur STLport>/lib in PATH eingetragen und alles läuft.Dass der Microsoft-Compiler von der STLport nicht unterstützt wird, stimmt natürlich nicht. Die Hilfefunktion der configure.bat listet alle unterstützten Compiler auf und da ist der msvc9 ganz klar mit dabei. (Auch auf www.stlport.org wird keine solche Einschränkung erwähnt, ganz im Gegenteil.) Und wie gesagt: bauen ließ sich die stlport.5.2.dll mit dem Compiler ja auch vollkommen problemlos. Die Crux war nur das Laden der dll.
Wozu ich die STLport verwenden will: ich schreibe ein Programm, das unter Windows und Linux laufen soll und das hash_maps verwendet. Und bevor ich die für die Windows-Version selber programmiere, möchte ich lieber eine hochportable STL benutzen, die es auf beiden Betriebssystemen gibt und in der alles drin ist, was ich brauche. Microsoft verzichtet an dieser Stelle ja leider auf Vollständigkeit.....
-
Explorer64 schrieb:
Microsoft verzichtet an dieser Stelle ja leider auf Vollständigkeit.....
Diese Aussage ist schlicht und ergreifend falsch. Hashtabellen sind noch nicht Teil des aktuellen Standards. Und laut der MSDN-Seite würde ich schon sagen das die <unordered_map> aus dem TR1 im 2008 (SP1) enthalten ist, werde dies aber erst in Kürze überprüfen können.
-
Im MSVC 2008 SP1 wird von MS eine TR1-Implementierung von Dinkumware mitgeliefert (zumindest einen großen Teil davon):
http://msdn.microsoft.com/en-us/library/bb982198.aspx... und somit auch
std::tr1::unordered_map
:
http://msdn.microsoft.com/en-us/library/bb983026.aspxIch verwende selber ausgiebig
std::tr1::shared_ptr
in MSVC und GCC, mit dem selben Sourcecode!Das man sich wegen einer Hashmap mit STLport abkräpeln muß, ist mir schleierhaft.