我现在真的被困住,每当我尝试编译我的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();
}
答案 0 :(得分:3)
听起来你需要将mysql库添加到构建过程中。如果你正在使用Qt的qmake系统,比如:
LIBS += -L/wherever/the/mysql/lib/is -lmysql
在项目的.pro文件中。
答案 1 :(得分:3)
Qt的二进制分发不包含内置的MySQL插件。你必须添加它manualy
您还应该在.pro文件中添加QT += sql
。
答案 2 :(得分:1)
将其与MYSQL库链接:
如果您正在使用GCC:
$ gcc -Wall your_file.c - o your_program -lmysql
此外,您可能希望添加-L
目录以包含安装MySQL库的位置。
如果您提供精确的编译行/机制(Makefile,IDE等),将会有所帮助。
答案 3 :(得分:0)
如果您使用的是Eclipse CDT,则需要将MySQL库添加到链接器设置中。转到项目属性 - &gt; GCC ++链接器 - &gt;库,并添加mysql
。