Boost Beispielcode-Kompilation unter MSVC 9.0 scheitert
-
Hallo,
ich habe mir die fertigen Libraries für MSVC 8.0 von boost.org heruntergeladen, um sie mit der 9er Version verwenden zu können. Nun habe ich ein simples Beispielprojekt erstellt, mit folgendem Code:
#include <boost/regex.hpp> #include <iostream> #include <string> int main() { std::string line; boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" ); while (std::cin) { std::getline(std::cin, line); boost::smatch matches; if (boost::regex_match(line, matches, pat)) std::cout << matches[2] << std::endl; } }
Auch nach den Anweisungen auf der Webseite wurden alle Library-Pfade, Includeverzeichnisse, etc. gesetzt. Die Header und die Library (in meinem Fall 'libboost_regex-vc80-s-1_34_1.lib') werden anstandslos gefunden, allerdings meldet mir der Linker dann folgende Fehler:
msvcprt.lib(MSVCP90.dll) : error LNK2005: "[bla] already defined in libboost_regex-vc80-s-1_34_1.lib(instances.obj)
Es handelt sich hierbei also um Doppeltdeklarationen von 'std::basic_string<char,struct std::char_traits<char>' (ersetzt durch '[bla]'), und weiteren std::string Funktionen. . Aber wie umgehe ich das Problem? Vielen Dank!
-
einfach boost libs für vc9 komipilieren. dazu musst du nur die boost sourcen herunterladen und ein paar dateien anpassen:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-206008.html
klappt wunderpaar!
-
Okay, vielen Dank. Geht also doch nichts mit den Libraries vom 8.0er.
Ich habe es damals einfach nicht auf die Reihe bekommen, Boost erfolgreich zu kompilieren. Deshalb bin ich mittlerweile einbisschen zögernd geworden, mit dem Selbstkompilieren. Aber ich werde es mit deinen Tipps nochmal versuchen. Danke!
-
Achtung: Die verlinkte Anleitung von Swordfish ist immer noch fehlerhaft. Bitte beachte diese Beiträge: http://www.c-plusplus.net/forum/viewtopic-var-p-is-1465559.html#1465537