标题:麻烦scerzz进来看看编译数据库驱动的问题
作者:bjiang
日期:2006-08-11 09:58
内容:
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runt
ime-pseudo-reloc -Wl,-s -Wl,-s -shared -Wl,--out-implib,d:\Qt\4.1.1\plugins\sqld
rivers\libqsqlmysql.a -o "d:\Qt\4.1.1\plugins\sqldrivers\qsqlmysql.dll" tmp\obj\
release_shared\main.o tmp\obj\release_shared\qsql_mysql.o -L"d:\Qt\4.1.1\lib" -
L"d:\Qt\4.1.1\lib" C:\MYSQL\LIB\OPT\LIBMYSQL.a -llibmysql -lQtSql4 -lQtCore4
D:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot f
ind -llibmysql
collect2: ld returned 1 exit status
mingw32-make[1]: *** Error 1
mingw32-make[1]: Leaving directory `D:/Qt/4.1.1/src/plugins/sqldrivers/mysql'
mingw32-make: *** Error 2
我搞了好久了,还是出现你所出现的这个问题。你说:
我把reimp复制到dev-cpp/bin目录下了,发现那下面才是命令存放的目录
CODE:
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runt
ime-pseudo-reloc -Wl,-s -Wl,-s -shared -Wl,--out-implib,d:\Qt\4.1.1\plugins\sqld
rivers\libqsqlmysql.a -o "d:\Qt\4.1.1\plugins\sqldrivers\qsqlmysql.dll" tmp\obj\
release_shared\main.o tmp\obj\release_shared\qsql_mysql.o -L"d:\Qt\4.1.1\lib" -
L"d:\Qt\4.1.1\lib" C:\MYSQL\LIB\OPT\libmysql.a -lQtSql4 -lQtCore4
编译的最后一步
可以对比一下
这样编译过后就可以象下面这样连接么
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("abc");
db.setUserName("root");
db.setPassword("");//我默认是没有密码的
db.open();
但db.open()为假啊,没有成功,是否需要在工程里边更改什么东西呢?
“发现那下面才是命令存放的目录”是什么意思啊。
#1 [bjiang 08-11 14:41]
没人知道啊。麻烦了,我找到一个办法把mysql.pro里面的
TARGET = qsqlmysql
HEADERS = ../../../sql/drivers/mysql/qsql_mysql.h
SOURCES = main.cpp \
../../../sql/drivers/mysql/qsql_mysql.cpp
unix:!contains(LIBS, .*mysqlclient.*):!contains(LIBS, .*mysqld.*) {
use_libmysqlclient_r:LIBS *= -lmysqlclient_r
!use_libmysqlclient_r:LIBS *= -lmysqlclient
}
win32:!contains(LIBS, .*mysql.*):!contains(LIBS, .*mysqld.*) {
LIBS *= -llibmysql
}
include(../qsqldriverbase.pri)
QT += sql
win32:!contains(LIBS, .*mysql.*):!contains(LIBS, .*mysqld.*) {
LIBS *= -llibmysql
}删除掉,能编译通过,程序测试还是找不到驱动,请问上面是什么意思,导致我编译通不过。