MySQL++ mit Code::Blocks, Anwendung startet nicht.



  • Hallo zusammen,

    Ich habe ein kleines Problem mit MySQL++ unter Windows und Code::Blocks.
    Compiler ist MinGW.

    Ich habe mysql++ runtergeladen, entpackt und entsprechend der Anleitung für MinGW compiliert.

    Dann habe ich ein Projekt zum Testen in Code::Blocks erstellt. Als Quelldatei habe ich einfach die resetdb.cpp aus "mysql++\examples" genommen.

    Unter "Project->Build Options ...->Search Directories" habe ich folgendes hinzugefügt:
    C:\Program Files\MySQL\MySQL Server 5.1\include
    C:\...\mysql++\lib

    Unter "Project->Build Options ...->Linker Settings" habe ich folgendes hinzugefügt:
    C:\...\mysql++\libmysqlpp.a
    C:\Program Files\MySQL\MySQL Server 5.1\lib\opt\libmysqlclient.a

    Compilieren hat mit 16 Warnungen geklappt:

    C:\MySQL++\include\cpool.h|42|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\mystring.h|104|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\sqlstream.h|38|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\transaction.h|41|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\query.h|62|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\query.h|63|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\scopedconnection.h|41|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\scopedconnection.h|42|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\cpool.h|42|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\mystring.h|104|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\sqlstream.h|38|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\transaction.h|41|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\query.h|62|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\query.h|63|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\scopedconnection.h|41|warning: type attributes ignored after type is already defined|
    C:\MySQL++\include\scopedconnection.h|42|warning: type attributes ignored after type is already defined|
    ||=== Build finished: 0 errors, 16 warnings ===|

    Beim Starten hat er mir die Fehlermeldungen geworfen, dass er die "mysqlpp.dll" und die "libmysql.dll" vermisst. Die habe ich dann aus

    C:\...\mysql++

    und

    C:\Program Files\MySQL\MySQL Server 5.1\lib\opt

    ins Verzeichnis zur .exe Datei kopiert. Jetzt kriege ich folgende Fehlermeldung: "Die Anwendung konnte nicht gestartet werden (0xc000007b). Klicken Sie auf "OK", um die Anwendung zu schließen."

    Habt ihr eine Idee, was da schiefläuft?



  • ich arbeite zwar selbst nicht mit mysql++ (war mir zu kompliziert 😃 ), sondern verwende noch die altherkömmlich mitgeliefert mysql.h, aber hatte letztens selbst das Problem, welches darauf zurückzuführen war, dass die .dll und die lib nicht aus der gleichen mysql-Version stammten. Vielleicht wäre das ein Ansatz.



  • Habe es immer noch nicht hinbekommen, aber habe alles mysql++ Zeug runtergeworfen, neu entpackt und wollte die mysql++ Library neu erstellen.

    Das wiederum ist mir allerdings abgebrochen. Und zwar an folgender Stelle

    g++ -o ssqlsxlat.exe ssqlsxlat_genv2.o ssqlsxlat_main.o -mthreads -g -L. -Wl,--
    enable-auto-import -Wl,--enable-runtime-pseudo-reloc -L"C:\Program Files\MySQL\M
    ySQL Server 5.1\lib\opt" -lmysqlclient -lmysqlpp -lmysqlpp_ssqls2parse
    ./libmysqlpp_ssqls2parse.a(ssqls2parse_parsev2.o):C:\Users\paul\Documents\cpp Li
    bs\mysqlpp/ssx/parsev2.cpp:192: undefined reference to mysqlpp::internal::str_t o_lwr(std::string&)' ./libmysqlpp\_ssqls2parse.a(ssqls2parse\_parsev2.o): In functionType':
    C:\Users\paul\Documents\cpp Libs\mysqlpp/ssx/parsev2.cpp:256: undefined referenc
    e to mysqlpp::internal::str\_to\_lwr(std::string&)' C:\\Users\\paul\\Documents\\cpp Libs\\mysqlpp/ssx/parsev2.cpp:256: undefined referenc e tomysqlpp::internal::str_to_lwr(std::string&)'
    ./libmysqlpp_ssqls2parse.a(ssqls2parse_parsev2.o):C:\Users\paul\Documents\cpp Li
    bs\mysqlpp/ssx/parsev2.cpp:496: undefined reference to mysqlpp::internal::str_t o_lwr(std::string&)' ./libmysqlpp\_ssqls2parse.a(ssqls2parse\_parsev2.o):C:\\Users\\paul\\Documents\\cpp Li bs\\mysqlpp/ssx/parsev2.cpp:579: undefined reference tomysqlpp::internal::str_t
    o_lwr(std::string&)'
    ./libmysqlpp_ssqls2parse.a(ssqls2parse_parsev2.o):C:\Users\paul\Documents\cpp Li
    bs\mysqlpp/ssx/parsev2.cpp:625: more undefined references to `mysqlpp::internal:
    :str_to_lwr(std::string&)' follow
    collect2: ld returned 1 exit status
    mingw32-make: *** [ssqlsxlat.exe] Error 1

    Leider werde ich da nicht schlau draus. Das Problem liegt beim Linken, okay, aber ich hab keine Ahnung, was da warum schief gelaufen ist.

    Hat jemand von euch eine Idee?


Anmelden zum Antworten