Я действительно застрял прямо сейчас, каждый раз, когда я пытаюсь скомпилировать свою программу на C ++, я получаю вывод, подобный этому:
release/dialog.o:dialog.cpp:(.text+0x9e): undefined reference to `mysql_init@4'
release/dialog.o:dialog.cpp:(.text+0xe1): undefined reference to `mysql_real_connect@32'
Просматривайте весь день, чтобы найти обходные пути, учебные пособия, что угодно, прочитайте учебные пособия, удалите mingw, сервер mysql, qt и снова установите все. Я снова удалил qt и собрал его из исходного кода ... преобразовал libmysql.dll с 0.3 mingw-utils reimp.exe и dlltools.exe и так далее, ничего не помогло.
перед использованием QT (просто notepad ++ и mingw) у меня также были предупреждения компоновщика, сообщающие мне что-то о stdcall-fixup-disable, но программы компилировались и работали.
позже я переустановлю все снова, я думаю, что текущая установка не работает лучше, чем другие установки, прежде чем я даже не знаю, что я делал, собирая qt из исходного кода.
Есть ли простой (нормальный, несложный) способ заставить работать вместе Qt, MinGW, C ++, MySQL5.5?
edit2: теперь я исправил код, чтобы он заработал, вот какой-то минимальный фрагмент кода для начала:
#include <QtCore/QCoreApplication>
#include <QMYSQLDriver>
#include <qsqldatabase.h>
#include <QtSql>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
// insert other connection options here
if(!db.open()){
// dp not open, add some debug text and stuff, exit or retry
}
//db should be open at this place, add code here
return app.exec();
}