我用qt4.5连接access数据库,做了个登陆界面,用户名密码保存在access里,但是总是有这个错误:
警告:
D:/ssdialog/ssdialog.cpp:26: undefined reference to `_imp___ZN12QSqlDatabase17defaultConnectionE'
D:/ssdialog/ssdialog.cpp:26: undefined reference to `_imp___ZN12QSqlDatabase11addDatabaseERK7QStringS2_'
D:/ssdialog/ssdialog.cpp:27: undefined reference to `_imp___ZN12QSqlDatabase15setDatabaseNameERK7QString'
D:/ssdialog/ssdialog.cpp:28: undefined reference to `_imp___ZN12QSqlDatabase4openEv'
D:/ssdialog/ssdialog.cpp:31: undefined reference to `_imp___ZN12QSqlDatabaseC1Ev'
D:/ssdialog/ssdialog.cpp:31: undefined reference to `_imp___ZN9QSqlQueryC1ERK7QString12QSqlDatabase'
D:/ssdialog/ssdialog.cpp:31: undefined reference to `_imp___ZN12QSqlDatabaseD1Ev'
D:/ssdialog/ssdialog.cpp:31: undefined reference to `_imp___ZN12QSqlDatabaseD1Ev'
D:/ssdialog/ssdialog.cpp:33: undefined reference to `_imp___ZN9QSqlQuery4execERK7QString'
D:/ssdialog/ssdialog.cpp:34: undefined reference to `_imp___ZN9QSqlQuery4nextEv'
D:/ssdialog/ssdialog.cpp:36: undefined reference to `_imp___ZNK9QSqlQuery5valueEi'
D:/ssdialog/ssdialog.cpp:38: undefined reference to `_imp___ZNK9QSqlQuery5valueEi'
D:/ssdialog/ssdialog.cpp:43: undefined reference to `_imp___ZN9QSqlQueryD1Ev'
D:/ssdialog/ssdialog.cpp:43: undefined reference to `_imp___ZN9QSqlQueryD1Ev'
D:/ssdialog/ssdialog.cpp:51: undefined reference to `_imp___ZN12QSqlDatabase5closeEv'
D:/ssdialog/ssdialog.cpp:51: undefined reference to `_imp___ZN12QSqlDatabaseD1Ev'
D:/ssdialog/ssdialog.cpp:51: undefined reference to `_imp___ZN12QSqlDatabaseD1Ev'
错误:
error: collect2: ld returned 1 exit status
有问题的程序如下:(只有可能是这块有问题,因为我试了,屏蔽这块的话就没问题了,我下载了个qt4连access数据库的例子,和他做的差不多,他的就能运行的)
void SsDialog::pb1_cli()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=d:/ssdialog/db1.mdb");
bool ok = db.open();
if(ok)
{
QSqlQuery query;
QString s1,s2;
query.exec("select * from t1");
while(query.next())
{
s1=query.value(1).toString();
s2=query.value(2).toString();
if(lineEdit1->text()==s1&&lineEdit2->text==s2)
QMessageBox::information(this,"Hello!","Welcome!");
else
QMessageBox::information(this,"Error!","Wrong username or password!");
}
}
else
QMessageBox::information(this,"database","database Failure");
db.close();
}