gpt4 book ai didi

c++ - qt:对 'mysql_something@nr' 的 undefined reference

转载 作者:可可西里 更新时间:2023-11-01 07:54:46 25 4
gpt4 key购买 nike

我现在真的卡住了,每次我尝试编译我的 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 server、qt 并重新安装所有内容。我再次删除了 qt 并从源代码构建它...使用 0.3 mingw-utils reimp.exe 和 dlltools.exe 等转换了 libmysql.dll,但没有任何帮助。

在使用 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();
}

最佳答案

听起来您需要将 mysql 库添加到构建过程中。如果您使用的是 Qt 的 qmake 系统,则类似于:

LIBS += -L/wherever/the/mysql/lib/is -lmysql

在项目的 .pro 文件中。

关于c++ - qt:对 'mysql_something@nr' 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4797359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com