boost regex problem
-
Du machst das besser mit dem install-Flag. Dann werden alle notwendigen Dateien sauber in ein Verzeichnis geschrieben. Etwa so
bjam gcc --variant=complete "--build-dir=c:\boost\build" "--prefix=c:\boost\build" "-sMINGW_ROOT_DIRECTORY=d:/mingw" --with-regex install
Das MINGW_ROOT_DIRECTORY kannst du weglassen wenn der Pfad bereits bekannt ist.
-
anno schrieb:
Hier weiß ich jetzt nicht genau, ob das auch fehler waren
Wenn du dir die Meldung durchliest (zugegebenerweise etwas mühselig), dann siehst du dass es sich um Warnungen bezüglich uninitialisierter Variablen handelt - allerdings in der STL, so dass du dir darüber nicht unbedingt sorgen zu machen brauchst.
C:\boost\boost_1_34_1>
Falls du die installation noch nicht fertig haben solltest und Wert auf aktuelle Versionen legst: es gibt bereits Boost 1.37
-
so, ich habe jetzt mal die euste boost version compiliert. dieses mal wurden .lib dateien erzeugt.
als ich es dann compilieren wollte, bekam ich nochmals fehelrmeldungen.
dieses mal allerdings nicht so viele wie das letzte mal.Running build steps for project sql... Configuration unchanged, skipping QMake step. Starting: C:/Qt/QtCreator/mingw/bin/mingw32-make.exe debug -w mingw32-make: Entering directory `C:/Dokumente und Einstellungen/anno/Desktop/sql' C:/Qt/QtCreator/mingw/bin/mingw32-make -f Makefile.Debug mingw32-make[1]: Entering directory `C:/Dokumente und Einstellungen/anno/Desktop/sql' g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\sql.exe debug/main.o debug/mainwindow.o debug/pwdcrypt.o debug/class_md5.o debug/core_func.inc.o debug/moc_mainwindow.o -L"c:\Qt\QtCreator\qt\lib" -lmingw32 -lqtmaind -lQtSqld4 -lQtGuid4 -lQtCored4 debug/pwdcrypt.o: In function `ZSt17__is_null_pointerIN9__gnu_cxx17__normal_iteratorIPKcSsEEEbT_': C:/Qt/QtCreator/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_iterator.h:(.text$_ZN5boost11basic_regexIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE6assignEPKcS7_j[boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::assign(char const*, char const*, unsigned int)]+0x22): undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)' collect2: ld returned 1 exit status mingw32-make[1]: Leaving directory `C:/Dokumente und Einstellungen/anno/Desktop/sql' mingw32-make: Leaving directory `C:/Dokumente und Einstellungen/anno/Desktop/sql' mingw32-make[1]: *** [debug\sql.exe] Error 1 mingw32-make: *** [debug] Error 2 Exited with code 2. Error while building project sql When executing build step 'Make'
-
Das ist eine undefined Referenz. Hast du vielleicht vergessen die libs zu deinem Projekt zuzufügen?
-
naja, das kann cshon mögilich sein, aber ich muss erstmal schauen, wie ich die in meine qt greenhouse ide reinbekomme.
edit:
muss ich vielleicht die lib datein noch umbennen, denn bisher heißen die "libboost_regex-mgw34-mt-1_37.lib" und "libboost_regex-mgw34-mt.lib"?
-
anno schrieb:
naja, das kann cshon mögilich sein, aber ich muss erstmal schauen, wie ich die in meine qt greenhouse ide reinbekomme.
edit:
muss ich vielleicht die lib datein noch umbennen, denn bisher heißen die "libboost_regex-mgw34-mt-1_37.lib" und "libboost_regex-mgw34-mt.lib"?
Nein, eigentlich nicht. Aber ein paar heissen immer sehr ähnlich..
-
alles klar, hat wunderbar geklappt.
ich ahbe in meinem makrfile noch folgende libs eingefügt:
LIBS += C:\Qt\QtCreator\qt\lib\libboost_regex-mgw34-mt-1_37.lib LIBS += C:\Qt\QtCreator\qt\lib\libboost_regex-mgw34-mt.lib
danke dann für die hilfe. ich hoffe es funktioniert jetzt alles, zumindest das comipilieren ging mal.
-
Du brauchst nur die obere.
-
was mich jetzt noch interessieren würde.
Also wenn ich das richtig verstanden habe, werden die .lib files statisch in das programm eingebunden und dll files wären dann die dynamische variante.
-
Bei boost ist das so, dass überall da wo libboost vorne dran steht, es sich um statische libs handelt. Da brauchst du keine dlls.
Wenn der Name direkt mit boost beginnt, dann hast du eine lib (zur statischen dll-Bindung) und eine dll.