• 4559阅读
  • 1回复

麻烦scerzz进来看看编译数据库驱动的问题 [复制链接]

上一主题 下一主题
离线bjiang
 

只看楼主 倒序阅读 楼主  发表于: 2006-08-11
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]: *** [d:\Qt\4.1.1\plugins\sqldrivers\qsqlmysql.dll] Error 1
mingw32-make[1]: Leaving directory `D:/Qt/4.1.1/src/plugins/sqldrivers/mysql'
mingw32-make: *** [release] 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

[Copy to clipboard]

编译的最后一步
可以对比一下

这样编译过后就可以象下面这样连接么
  QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
  db.setHostName("localhost");
  db.setDatabaseName("abc");
  db.setUserName("root");
  db.setPassword("");//我默认是没有密码的
db.open();
但db.open()为假啊,没有成功,是否需要在工程里边更改什么东西呢?

“发现那下面才是命令存放的目录”是什么意思啊。
[ 此贴被XChinux在2006-09-14 19:36重新编辑 ]
离线bjiang

只看该作者 1楼 发表于: 2006-08-11
没人知道啊。麻烦了,我找到一个办法把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  
}删除掉,能编译通过,程序测试还是找不到驱动,请问上面是什么意思,导致我编译通不过。
快速回复
限100 字节
 
上一个 下一个