Boost und STLport
-
Hallo,
gibt's hier Leute, die in einem Projekt schonmal parallel die Boost-Library und STLport verwendet haben?
Ich verwende seit ein paar Wochen Boost.Threads zwecks Portabilität. Da ich noch mitten im C++-spezifischen Lernprozeß () stecke und mehrfach von der Problematik der nicht standardkonformen Implementation der mit MSVC gelieferten STL gelesen habe, entschied ich mich erst jetzt, auf STLport umzusteigen.
STLport ist mittlerweile kompiliert und eingebunden, diverse Fehler konnte ich beseitigen bis jene zwei:
server.obj : error LNK2001: Nichtaufgeloestes externes Symbol "__declspec(dllimport) public: class boost::thread * __thiscall boost::thread_group::create_thread(class boost::function0<void,class _STL::allocator<class boost::function_base> > const &)
" (__imp_?create_thread@thread_group@boost@@QAEPAVthread@2@ABV?allocator@Vfunction_base@boost@@@_STL@@@2@@Z)server.obj : error LNK2001: Nichtaufgeloestes externes Symbol "__declspec(dllimport) public: __thiscall boost::thread::thread(class thread::function0<void,class _STL::allocator<class boost::function_base> > const &)" (__imp_??0thread@boost@@QAE@ABV?
allocator@Vfunction_base@boost@@@_STL@@@1@@Z)Debug/Server.exe : fatal error LNK1120: 2 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.
Browse-Informationsdatei wird erstellt...Server.exe - 3 Fehler, 0 Warnung(en)
Ich befürchte, daß ich die Boost-Library mit STLport neu kompilieren muß, allerdings weiß ich nicht so recht, wie ich das anstellen soll (habe mich damals nur ans Tutorial gehalten, das nur die Kompilierung der mitgelieferten .jam-Files beschreibt).
Da ich dazu keine Infos und auch kein Boost-Forum gefunden habe, frage ich nun hier. Ich hoffe, jemand weiß was dazu...
Vielen Dank im Voraus!
-
du scheinst die boost thread library nicht mitzulinken. sie heisst irgendwas mit boostthreadmon oder so.
-
boost_thread.lib
Doch, wird mitgelinkt und funktionierte ja auch, bis ich STLport eingebunden habe.
Er hängt sich wohl daran auf:__declspec(dllimport) public: __thiscall boost::thread::thread(class thread::function0<void,class _STL::allocator<class boost::function_base> > const &)
denn genau das ist ja jetzt von STLport gestellt und nicht von der mitgelieferten STL. Bin da etwas ratlos, deshalb frag ich ja auch...
-
Hallo,
meines Wissens nach gibt es extra eine bjam-Konfiguration für die Kombination msvc 6 + stlport. Damit muss du wahrscheinlich nochmal die ganze Lib bauen. Ansonsten solltest du mal auf der Boost Mailing-List suchen. Dort findet man eigentlich immer was.
-
Danke, ich hab die entsprechenden toolsets mittlerweile auch gefunden und den Rest des Tages mit deren Einstellungen rumgekämpft.
Hab sogar geschafft, eine .lib auf STLport-Basis zu erstellen, mit welcher mein Projekt ohne Linker-Fehler kompiliert, allerdings kommt dann eine Fehlermeldung, daß für eben jene Funktion kein Einstiegspunkt in der .dll gefunden wird (im Prinzip also derselbe Fehler
).
Naja, ich mach jetzt erstmal Feierabend und bin erst Montag wieder in der Firma.
Danke nochmal!
Gruß,
ein frustrierter Cocaine