Qt MySQL Treiber unter Mac OS installieren

Alles zu Entwicklungsumgebungen und Editoren für Qt
Antworten
Marcus Breuer
Beiträge: 113
Registriert: 31. März 2011 17:19
Wohnort: Aachen
Kontaktdaten:

Qt MySQL Treiber unter Mac OS installieren

Beitrag von Marcus Breuer »

Guten Abend Leute,

ich habe probiert den MySQL Treiber für Qt zu installieren, denke, dass ich auch garnicht so früh gescheitert bin, allerdings scheint es doch irgendwo ein gravierendes problem zu geben, das ich alleine nicht gelöst bekomme.

Also zunächst, ich habe mir für Mac OS das komplette SDK heruntergeladen und installiert. Da ich erst später mit MySQL arbeiten wollte, wusste ich im Vorfeld nicht, dass sich das scheinbar als Fehler erweisen wird.

Ich habe mir dann den reinen source code runtergeladen und mir aus dem Ordner src/... alles rauskopiert, was ich brauche. Und die Dateien dann einfach
in den entsprechenden Ordner meiner Installation des SDK's gepackt. Dort habe ich dann qmake aufgerufen. Das scheint auch zu klappen, allerdings bei make scheitert es. Ich zeige Euch jetzt mal die Fehlermeldung. Falls die Erklärung zu ungenau war oder zu wenig Informationen enthält, dann bitte sagt mir was Ihr wissen müsst, ich schreibe dann auch gerne alles ganz detailliert auf. Nun zum Fehlercode:

Code: Alles auswählen

Marcus-Breuers-MacBook-Pro:sqldrivers marcusbreuer$ make
g++ -c -pipe -g -gdwarf-2 -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -Wall -W -DQT_GUI_LIB -DQT_CORE_LIB -I../../mkspecs/macx-g++ -I. -I../../lib/QtCore.framework/Versions/4/Headers -I../../include/QtCore -I../../lib/QtGui.framework/Versions/4/Headers -I../../include/QtGui -I../../include -I/usr/local/mysql-5.5.12-osx10.6-x86/include -I. -F/Developer/Qt/Desktop/Qt/473/gcc/lib -o main.o main.cpp
g++ -headerpad_max_install_names -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -o qsqlmysql.app/Contents/MacOS/qsqlmysql main.o   -F/Developer/Qt/Desktop/Qt/473/gcc/lib -L/Developer/Qt/Desktop/Qt/473/gcc/lib -L/usr/local/mysql/lib -lmysqlclient_r -framework QtGui -framework QtCore 
ld: warning: in /usr/local/mysql/lib/libmysqlclient_r.dylib, file is not of required architecture
Undefined symbols:
  "_main", referenced from:
      start in crt1.10.5.o
  "QSqlDriverPlugin::qt_metacast(char const*)", referenced from:
      vtable for QMYSQLDriverPluginin main.o
  "typeinfo for QSqlDriverPlugin", referenced from:
      typeinfo for QMYSQLDriverPluginin main.o
  "QSqlDriverPlugin::metaObject() const", referenced from:
      vtable for QMYSQLDriverPluginin main.o
  "QMYSQLDriver::QMYSQLDriver(QObject*)", referenced from:
      QMYSQLDriverPlugin::create(QString const&) in main.o
  "QSqlDriverPlugin::~QSqlDriverPlugin()", referenced from:
      QMYSQLDriverPlugin::~QMYSQLDriverPlugin()in main.o
      QMYSQLDriverPlugin::~QMYSQLDriverPlugin()in main.o
  "QSqlDriverPlugin::QSqlDriverPlugin(QObject*)", referenced from:
      QMYSQLDriverPlugin::QMYSQLDriverPlugin()in main.o
      QMYSQLDriverPlugin::QMYSQLDriverPlugin()in main.o
  "QSqlDriverPlugin::qt_metacall(QMetaObject::Call, int, void**)", referenced from:
      vtable for QMYSQLDriverPluginin main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [qsqlmysql.app/Contents/MacOS/qsqlmysql] Error 1

Grüße,
Marcus
Marcus Breuer
Beiträge: 113
Registriert: 31. März 2011 17:19
Wohnort: Aachen
Kontaktdaten:

Beitrag von Marcus Breuer »

Ich habe es jetzt genauso wie in der Anleitung unter

http://doc.qt.nokia.com/4.7/sql-driver. ... ase-driver

gemacht und leider konnte ich meinem Ziel noch nicht näher kommen. Ich bitte dringend um Hilfe. Hier der folgende Fehlercode, der sich glaube ich garnicht mal so sehr vom anderen unterscheidet:

Code: Alles auswählen

Last login: Tue May 24 15:01:09 on ttys000
Marcus-Breuers-MacBook-Pro:~ marcusbreuer$ cd /Applications/Qt/473/src/plugins/sqldrivers/mysql
Marcus-Breuers-MacBook-Pro:mysql marcusbreuer$ /usr/local/Trolltech/Qt-4.7.3/bin/qmake -o Makefile "INCLUDEPATH+=/usr/local/mysql/include" "LIBS+=-L/usr/local/mysql/lib -lmysqlclient_r" mysql.pro
Marcus-Breuers-MacBook-Pro:mysql marcusbreuer$ make
make -f Makefile.Debug
rm -f libqsqlmysql_debug.dylib
g++ -headerpad_max_install_names -arch x86_64 -single_module -dynamiclib -Xarch_x86_64 -mmacosx-version-min=10.5 -o libqsqlmysql_debug.dylib debug/main.o debug/qsql_mysql.o debug/moc_qsql_mysql.o  -F/usr/local/Trolltech/Qt-4.7.3/lib -L/usr/local/Trolltech/Qt-4.7.3/lib -L/usr/local/mysql/lib -lmysqlclient_r -framework QtSql -L/usr/local/Trolltech/Qt-4.7.3/lib -F/usr/local/Trolltech/Qt-4.7.3/lib -framework QtCore  
ld: warning: in /usr/local/mysql/lib/libmysqlclient_r.dylib, file is not of required architecture
Undefined symbols:
  "_mysql_stmt_close", referenced from:
      QMYSQLResult::cleanup()      in qsql_mysql.o
  "_mysql_next_result", referenced from:
      QMYSQLResult::cleanup()      in qsql_mysql.o
      QMYSQLResult::nextResult()       in qsql_mysql.o
  "_mysql_list_tables", referenced from:
      QMYSQLDriver::tables(QSql::TableType) const  in qsql_mysql.o
  "_mysql_stmt_bind_result", referenced from:
      QMYSQLResult::exec()      in qsql_mysql.o
      QMYSQLResult::exec()      in qsql_mysql.o
  "_mysql_close", referenced from:
      QMYSQLDriver::close()      in qsql_mysql.o
      QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&)in qsql_mysql.o
      QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&)in qsql_mysql.o
  "_mysql_select_db", referenced from:
      QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&)in qsql_mysql.o
  "_mysql_affected_rows", referenced from:
      QMYSQLResult::nextResult()       in qsql_mysql.o
      QMYSQLResult::reset(QString const&) in qsql_mysql.o
  "_mysql_stmt_num_rows", referenced from:
      QMYSQLResult::size()      in qsql_mysql.o
      QMYSQLResult::fetchLast()      in qsql_mysql.o
  "_mysql_stmt_reset", referenced from:
      QMYSQLResult::exec()      in qsql_mysql.o
  "_mysql_list_fields", referenced from:
      QMYSQLDriver::record(QString const&) constin qsql_mysql.o
  "_mysql_character_set_name", referenced from:
      codec(st_mysql*)     in qsql_mysql.o
  "_mysql_stmt_insert_id", referenced from:
      QMYSQLResult::lastInsertId() const  in qsql_mysql.o
  "_mysql_num_fields", referenced from:
      QMYSQLResultPrivate::bindInValues()       in qsql_mysql.o
  "_mysql_field_seek", referenced from:
      QMYSQLResult::record() const in qsql_mysql.o
      QMYSQLResult::record() const in qsql_mysql.o
  "_mysql_server_init", referenced from:
      qLibraryInit()      in qsql_mysql.o
  "_mysql_insert_id", referenced from:
      QMYSQLResult::lastInsertId() const  in qsql_mysql.o
  "_mysql_stmt_param_count", referenced from:
      QMYSQLResult::exec()      in qsql_mysql.o
      QMYSQLResult::exec()      in qsql_mysql.o
      QMYSQLResult::prepare(QString const&) in qsql_mysql.o
      QMYSQLResult::prepare(QString const&) in qsql_mysql.o
  "_mysql_server_end", referenced from:
      qLibraryEnd()      in qsql_mysql.o
  "_mysql_get_server_version", referenced from:
      QMYSQLDriver::tables(QSql::TableType) const  in qsql_mysql.o
      QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&)in qsql_mysql.o
  "_mysql_stmt_data_seek", referenced from:
      QMYSQLResult::fetch(int)   in qsql_mysql.o
  "_mysql_stmt_bind_param", referenced from:
      QMYSQLResult::exec()      in qsql_mysql.o
  "_mysql_fetch_row", referenced from:
      QMYSQLDriver::tables(QSql::TableType) const  in qsql_mysql.o
      QMYSQLResult::fetchNext()      in qsql_mysql.o
      QMYSQLResult::fetch(int)   in qsql_mysql.o
  "_mysql_data_seek", referenced from:
      QMYSQLDriver::tables(QSql::TableType) const  in qsql_mysql.o
      QMYSQLResult::fetch(int)   in qsql_mysql.o
  "_mysql_stmt_execute", referenced from:
      QMYSQLResult::exec()      in qsql_mysql.o
  "_mysql_stmt_fetch", referenced from:
      QMYSQLResult::fetchNext()      in qsql_mysql.o
      QMYSQLResult::fetch(int)   in qsql_mysql.o
  "_mysql_field_count", referenced from:
      QMYSQLResult::nextResult()       in qsql_mysql.o
      QMYSQLResult::reset(QString const&) in qsql_mysql.o
      QMYSQLResult::reset(QString const&) in qsql_mysql.o
  "_mysql_fetch_field", referenced from:
      QMYSQLResultPrivate::bindInValues()       in qsql_mysql.o
      QMYSQLDriver::record(QString const&) constin qsql_mysql.o
      QMYSQLResult::record() const in qsql_mysql.o
      QMYSQLResult::record() const in qsql_mysql.o
  "_mysql_stmt_store_result", referenced from:
      QMYSQLResult::exec()      in qsql_mysql.o
  "_mysql_num_rows", referenced from:
      QMYSQLResult::size()      in qsql_mysql.o
      QMYSQLResult::fetchLast()      in qsql_mysql.o
  "_mysql_free_result", referenced from:
      QMYSQLDriver::tables(QSql::TableType) const  in qsql_mysql.o
      QMYSQLResult::cleanup()      in qsql_mysql.o
      QMYSQLResult::cleanup()      in qsql_mysql.o
      QMYSQLResult::cleanup()      in qsql_mysql.o
      QMYSQLDriver::record(QString const&) constin qsql_mysql.o
      QMYSQLResult::nextResult()       in qsql_mysql.o
  "_mysql_thread_init", referenced from:
      QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&)in qsql_mysql.o
  "_mysql_real_connect", referenced from:
      QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&)in qsql_mysql.o
  "_mysql_stmt_result_metadata", referenced from:
      QMYSQLResultPrivate::bindInValues()       in qsql_mysql.o
  "_mysql_query", referenced from:
      QMYSQLDriver::rollbackTransaction()       in qsql_mysql.o
      QMYSQLDriver::commitTransaction()       in qsql_mysql.o
      QMYSQLDriver::beginTransaction()       in qsql_mysql.o
  "_mysql_real_query", referenced from:
      QMYSQLResult::reset(QString const&) in qsql_mysql.o
  "_mysql_set_character_set", referenced from:
      QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&)in qsql_mysql.o
  "_mysql_options", referenced from:
      QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&)in qsql_mysql.o
  "_mysql_stmt_errno", referenced from:
      qMakeStmtError(QString const&, QSqlError::ErrorType, st_mysql_stmt*) in qsql_mysql.o
  "_mysql_stmt_error", referenced from:
      qMakeStmtError(QString const&, QSqlError::ErrorType, st_mysql_stmt*) in qsql_mysql.o
  "_mysql_errno", referenced from:
      QMYSQLResult::record() const in qsql_mysql.o
      qMakeError(QString const&, QSqlError::ErrorType, QMYSQLDriverPrivate const*)in qsql_mysql.o
  "_mysql_error", referenced from:
      qMakeError(QString const&, QSqlError::ErrorType, QMYSQLDriverPrivate const*)in qsql_mysql.o
  "_mysql_stmt_init", referenced from:
      QMYSQLResult::prepare(QString const&) in qsql_mysql.o
  "_mysql_real_escape_string", referenced from:
      QMYSQLDriver::formatValue(QSqlField const&, bool) constin qsql_mysql.o
  "_mysql_stmt_affected_rows", referenced from:
      QMYSQLResult::exec()      in qsql_mysql.o
  "_mysql_fetch_field_direct", referenced from:
      QMYSQLResult::nextResult()       in qsql_mysql.o
      QMYSQLResult::reset(QString const&) in qsql_mysql.o
  "_mysql_store_result", referenced from:
      QMYSQLResult::cleanup()      in qsql_mysql.o
      QMYSQLResult::nextResult()       in qsql_mysql.o
      QMYSQLResult::reset(QString const&) in qsql_mysql.o
  "_mysql_stmt_attr_set", referenced from:
      QMYSQLResult::exec()      in qsql_mysql.o
  "_mysql_thread_end", referenced from:
      QMYSQLDriver::close()      in qsql_mysql.o
  "_mysql_stmt_prepare", referenced from:
      QMYSQLResult::prepare(QString const&) in qsql_mysql.o
  "_mysql_get_client_version", referenced from:
      QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&)in qsql_mysql.o
  "_mysql_fetch_lengths", referenced from:
      QMYSQLResult::data(int)   in qsql_mysql.o
  "_mysql_init", referenced from:
      QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&)in qsql_mysql.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[1]: *** [libqsqlmysql_debug.dylib] Error 1
make: *** [debug] Error 2
Marcus-Breuers-MacBook-Pro:mysql marcusbreuer$ 
Danke schonmal vorab für jede Hilfe.

Gruß,
Marcus
gboelter
Beiträge: 80
Registriert: 5. Dezember 2007 14:52
Wohnort: Davao City, Philippines

Beitrag von gboelter »

Hallo Marcus,

ist zwar ein alter Thread, aber ich antworte trotzdem mal ...
Marcus Breuer hat geschrieben: ld: warning: in /usr/local/mysql/lib/libmysqlclient_r.dylib, file is not of required architecture
Hast Du moeglicherweise statt der 64-Bit die 32-Bit Version von MySQL installiert?
Guenther
Davao City, Philippines, Planet Earth, 28°C

Qt 4.8.1 for Linux/X11 - Open Source Edition for Application Development
Marcus Breuer
Beiträge: 113
Registriert: 31. März 2011 17:19
Wohnort: Aachen
Kontaktdaten:

Beitrag von Marcus Breuer »

Hi,

vielen Dank für deine Antwort. Ich hatte das auch irgendwann raus bekommen, dass es bezüglich 32- und 64-bit Probleme gibt. Ich habe es irgendwann aber auch aufgegeben und mit SQLite wieter gemacht. Das hat voll und ganz gereicht. Dennoch vielen vielen Dank für deine Antwort.

Grüße,
Marcus
Antworten