c – qt:未定义引用’mysql_something @ nr’

我现在真的被困住了,每当我尝试编译我的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文件中.

上一篇:C语言I博客作业02


下一篇:Qt-OpenCV使用CMake和MinGW的编译安装及其在Qt配置运行