我现在真的被困住了,每当我尝试编译我的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(只是记事本和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();
}
解决方法:
听起来你需要将mysql库添加到构建过程中.如果您正在使用Qt的qmake系统,例如:
LIBS += -L/wherever/the/mysql/lib/is -lmysql
在项目的.pro文件中.