link error in boost
-
hi,
ich habe mir gerade boost heruntergeladen, und bekomme bei der verwendung von regex folgenden link-errror:[Linker error] undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)'
Nun habe ich aber nur die includes kopiert, keine extra libs. Ich habe sowieso bei Linkfehlern immer keine Ahnung, was ich linken soll. Kann mir jemand verraten, wie man herausfindet welche lib er gelinkt haben möchte? Hab schon bei google nach boost::basic_regex geschaut aber nichts gefunden
Danke für jede Hilfe,
Max Demian
-
Kopiert? Wie kopiert? Du mußt deinem Compiler bzw. IDE einfach nur mitteilen, wo die Boost-Headers liegen, der sucht die dann da in dem orig. Boost-Verzeichnis.
Genau das gleiche mit den Libs: Gib deinem Compiler/Linker bzw. IDE einfach bekannt, wo das Boost-Libs-Verzeichnis liegt. VC++ bekommt dann von den Boost-Header mitgeteilt, welche Libs-Datei nötig ist. Mußt du nichts selbst machen.
-
Ich vermute mal, dass er die libs noch gar nicht erzeugt hat.
regex benötigt eine lib, die du mit deinem Compiler natürlich auch selbst erzeugen mußt.
-
Also die Libs muß man natürlich schon bauen, klar. Entweder alle Boost-Libs bauen, wie auf "Getting Started" auf der Boost Homepage beschrieben. Oder wenn man sich ein bisschen mit dem Boost Buildsystem auskennt, kann man auch nur die Regex Libs bauen, das dauert dann nicht so lange.
-
argh, sry, ich krieg das nicht hin. Benutze boost unter gentoo und da war es ein eifaches "emerge boost" um dieses zu installieren. Nun möchte ich ein Programm unter Windows schreiben aber da ich Umgebungsvariablen setzten muss, gcc unter der Windows-Konsole nicht verfügbar ist (benutze Dev-c++ um unter windows programme zu erstellen) komm ich gar nicht klar. Die get Started Seite beschreibt die installation ja auch nur für Unix Systeme.
Weis jemand, ob es irgendwo ein einfaches Howto für Windows zur Installation von Boost gibt? Ich habe nämlich eingentlich keine Lust mich genauer mit der Windows-Konsole auseinander zu setzten
-
Sorry, aber die Getting Started ist nicht Linux-Only sondern beschreibt sogar wie man es für VC++ einrichtet. Wie das ganze unter GCC oder MinGW funktioniert kann ich dir nicht sagen. Warum benutzt du nicht VC++ 2005 EE? Dafür könnte ich dir eine Anleitung geben. Und es gibt von Boost Consulting sogar einen Installer mit ein paar Mouseclicks.
Codeblocks wäre auch eine Alternative. Devcpp ist nicht zu empfehlen, da es einfach nicht weiter entwickelt wird.
-
Danke, lade gerade Codeblocks herunter. Dev-C++ hab ich seit ich angefangen habe zu programmieren auf meiner Platte liegen und da es immer gut funktioniert hat, habe ich mich nie nach anderen IDEs umgeschaut. Codeblocks scheint aber eine sehr gute Alternative zu sein und dazu noch ohne Trojaner! (sry, bin da paranoid, alle Programme, deren Source nicht erhältlich ist, beinhaltet wahrscheinlich Trojaner^^). Werd mal schauen ob ich das mit Codeblocks hinbekomme.
-
Artchi schrieb:
Codeblocks wäre auch eine Alternative. Devcpp ist nicht zu empfehlen, da es einfach nicht weiter entwickelt wird.
Aber Codeblocks doch auch nicht, hab ich mal gelesen? f'`8k
Bye, TGGC (\-/ returns)
-
hmm, habe es jetzt mit Codeblocks probiert aber ich stecke an der selben stellen wie bei Dev-C++: ich kriege die libs nicht gebaut. Kannst du mir mal das VC++ Howto geben? Auf der Seite http://boost.org/more/getting_started.html#Preparation finde ich nur eine Anleitung für Linux :(. Vlt kann ich dein Howto auf Codeblocks übertragen.
-
Anleitung für VC++:
http://www.kharchi.de/Boost_Installation.htmlMeiner Meinung nach muß man nur heraus finden, wie man die Environment variablen für den mingw (der bei CB dabei ist) in der Konsole setzt. Vielleicht kann dir jemand im Compiler-Forum helfen? bjam kannst du entweder selber bauen oder wie auf getting started beschrieben fertig downloaden. Du mußt zus. den sTOOLS Parameter an mingw anpassen (siehe Getting started). Viel Erfolg!
-
TGGC schrieb:
Aber Codeblocks doch auch nicht, hab ich mal gelesen? f'`8k
Ist zwar OT: CB wird weiter entwickelt, kann man an den Nightlybuilds und im CB-Forum sehen. Da der Release Candidate von CB aber schon so alt ist, entsteht für Außenstehende tatsächlich der Eindruck das nichts passiert.