我现在真的卡住了,每次我尝试编译我的 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/