首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Qt 4.7.2中构建MySQL插件的问题

问在Qt 4.7.2中构建MySQL插件的问题
EN

Stack Overflow用户
提问于 2011-03-14 21:18:57
回答 2查看 2.2K关注 0票数 0

我在Qt 4.7.2中构建MySQL驱动程序时遇到了一个链接器问题

我已经安装了Qt4.7.2formysql和MySQL 5.5.9Community Edition,它们的路径都没有空格(C:\ Qt,C:\MySQL)。我从Qt-Doc中获取命令,创建MakeFiles没有问题,只有一条消息:

代码语言:javascript
复制
C:\Qt\4.7.2\src\plugins\sqldrivers\mysql>C:\Qt\4.7.2\bin\qmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MYSQL\lib\libmysql.lib" mysql.pro
WARNING: (internal):1: Unescaped backslashes are deprecated.
WARNING: (internal):1: Unescaped backslashes are deprecated.
WARNING: (internal):1: Unescaped backslashes are deprecated.

然后我运行nmake并得到以下结果:

代码语言:javascript
复制
C:\Qt\4.7.2\src\plugins\sqldrivers\mysql>nmake

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -f Makefile.Debug

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

        C:\Qt\4.7.2\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQ
T_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtSql" -I"..\..\..\..\include" -I"c:\MySQL\include" -I"..\..\..\..\include\ActiveQt
" -I"debug" -I"..\..\..\..\mkspecs\default" -D_MSC_VER=1500 -DWIN32 ..\..\..\sql\drivers\mysql\qsql_mysql.cpp -o debug\qsql_mysql.moc
        C:\Qt\4.7.2\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQ
T_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtSql" -I"..\..\..\..\include" -I"c:\MySQL\include" -I"..\..\..\..\include\ActiveQt
" -I"debug" -I"..\..\..\..\mkspecs\default" -D_MSC_VER=1500 -DWIN32 ..\..\..\sql\drivers\mysql\qsql_mysql.h -o debug\moc_qsql_mysql.cpp
        rc -D_DEBUG -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -
DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -fo debug\qsqlmysqld_resource.res qsqlmysqld_resource.rc
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LI
B -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtSql" -I"..\..\..\..\include" -I"
c:\MySQL\include" -I"..\..\..\..\include\ActiveQt" -I"debug" -I"..\..\..\..\mkspecs\default" -Fodebug\ @C:\Users\MASTER~1\AppData\Local\Temp\nmF5B5.tmp
main.cpp
        cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LI
B -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtSql" -I"..\..\..\..\include" -I"
c:\MySQL\include" -I"..\..\..\..\include\ActiveQt" -I"debug" -I"..\..\..\..\mkspecs\default" -Fodebug\ @C:\Users\MASTER~1\AppData\Local\Temp\nmFE8C.tmp
qsql_mysql.cpp
        cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LI
B -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtSql" -I"..\..\..\..\include" -I"
c:\MySQL\include" -I"..\..\..\..\include\ActiveQt" -I"debug" -I"..\..\..\..\mkspecs\default" -Fodebug\ @C:\Users\MASTER~1\AppData\Local\Temp\nm6E7.tmp
moc_qsql_mysql.cpp
        link /LIBPATH:"c:\Qt\4.7.2\lib" /NOLOGO /DEBUG /DLL /MANIFEST /MANIFESTFILE:"debug\qsqlmysqld.intermediate.manifest" /VERSION:4.72 /OUT:debug\qsqlmysqld4.dll @C:\Users\MASTER~1\AppData\Local\T
emp\nmE28.tmp
   Creating library debug\qsqlmysqld4.lib and object debug\qsqlmysqld4.exp
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_fetch_field@4 referenced in function "public: bool __thiscall QMYSQLResultPrivate::bindInValues(void)" (?bindInValues@QMYSQLResultPriv
ate@@QAE_NXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_num_fields@4 referenced in function "public: bool __thiscall QMYSQLResultPrivate::bindInValues(void)" (?bindInValues@QMYSQLResultPriva
te@@QAE_NXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_result_metadata@4 referenced in function "public: bool __thiscall QMYSQLResultPrivate::bindInValues(void)" (?bindInValues@QMYSQLR
esultPrivate@@QAE_NXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_close@4 referenced in function "protected: void __thiscall QMYSQLResult::cleanup(void)" (?cleanup@QMYSQLResult@@IAEXXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_store_result@4 referenced in function "protected: void __thiscall QMYSQLResult::cleanup(void)" (?cleanup@QMYSQLResult@@IAEXXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_next_result@4 referenced in function "protected: void __thiscall QMYSQLResult::cleanup(void)" (?cleanup@QMYSQLResult@@IAEXXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_free_result@4 referenced in function "protected: void __thiscall QMYSQLResult::cleanup(void)" (?cleanup@QMYSQLResult@@IAEXXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_fetch_row@4 referenced in function "protected: virtual bool __thiscall QMYSQLResult::fetch(int)" (?fetch@QMYSQLResult@@MAE_NH@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_data_seek@12 referenced in function "protected: virtual bool __thiscall QMYSQLResult::fetch(int)" (?fetch@QMYSQLResult@@MAE_NH@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_fetch@4 referenced in function "protected: virtual bool __thiscall QMYSQLResult::fetch(int)" (?fetch@QMYSQLResult@@MAE_NH@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_data_seek@12 referenced in function "protected: virtual bool __thiscall QMYSQLResult::fetch(int)" (?fetch@QMYSQLResult@@MAE_NH@Z)

qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_errno@4 referenced in function "class QSqlError __cdecl qMakeStmtError(class QString const &,enum QSqlError::ErrorType,struct st_
mysql_stmt *)" (?qMakeStmtError@@YA?AVQSqlError@@ABVQString@@W4ErrorType@1@PAUst_mysql_stmt@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_error@4 referenced in function "class QSqlError __cdecl qMakeStmtError(class QString const &,enum QSqlError::ErrorType,struct st_
mysql_stmt *)" (?qMakeStmtError@@YA?AVQSqlError@@ABVQString@@W4ErrorType@1@PAUst_mysql_stmt@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_num_rows@4 referenced in function "protected: virtual bool __thiscall QMYSQLResult::fetchLast(void)" (?fetchLast@QMYSQLResult@@MAE_NXZ
)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_num_rows@4 referenced in function "protected: virtual bool __thiscall QMYSQLResult::fetchLast(void)" (?fetchLast@QMYSQLResult@@MA
E_NXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_fetch_lengths@4 referenced in function "protected: virtual class QVariant __thiscall QMYSQLResult::data(int)" (?data@QMYSQLResult@@MAE
?AVQVariant@@H@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_fetch_field_direct@8 referenced in function "protected: virtual bool __thiscall QMYSQLResult::reset(class QString const &)" (?reset@QM
YSQLResult@@MAE_NABVQString@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_affected_rows@4 referenced in function "protected: virtual bool __thiscall QMYSQLResult::reset(class QString const &)" (?reset@QMYSQLR
esult@@MAE_NABVQString@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_field_count@4 referenced in function "protected: virtual bool __thiscall QMYSQLResult::reset(class QString const &)" (?reset@QMYSQLRes
ult@@MAE_NABVQString@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_real_query@12 referenced in function "protected: virtual bool __thiscall QMYSQLResult::reset(class QString const &)" (?reset@QMYSQLRes
ult@@MAE_NABVQString@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_errno@4 referenced in function "class QSqlError __cdecl qMakeError(class QString const &,enum QSqlError::ErrorType,class QMYSQLDriverP
rivate const *)" (?qMakeError@@YA?AVQSqlError@@ABVQString@@W4ErrorType@1@PBVQMYSQLDriverPrivate@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_error@4 referenced in function "class QSqlError __cdecl qMakeError(class QString const &,enum QSqlError::ErrorType,class QMYSQLDriverP
rivate const *)" (?qMakeError@@YA?AVQSqlError@@ABVQString@@W4ErrorType@1@PBVQMYSQLDriverPrivate@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_insert_id@4 referenced in function "protected: virtual class QVariant __thiscall QMYSQLResult::lastInsertId(void)const " (?lastInsertI
d@QMYSQLResult@@MBE?AVQVariant@@XZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_insert_id@4 referenced in function "protected: virtual class QVariant __thiscall QMYSQLResult::lastInsertId(void)const " (?lastIn
sertId@QMYSQLResult@@MBE?AVQVariant@@XZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_field_seek@8 referenced in function "protected: virtual class QSqlRecord __thiscall QMYSQLResult::record(void)const " (?record@QMYSQLR
esult@@MBE?AVQSqlRecord@@XZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_param_count@4 referenced in function "protected: virtual bool __thiscall QMYSQLResult::prepare(class QString const &)" (?prepare@
QMYSQLResult@@MAE_NABVQString@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_prepare@12 referenced in function "protected: virtual bool __thiscall QMYSQLResult::prepare(class QString const &)" (?prepare@QMY
SQLResult@@MAE_NABVQString@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_init@4 referenced in function "protected: virtual bool __thiscall QMYSQLResult::prepare(class QString const &)" (?prepare@QMYSQLR
esult@@MAE_NABVQString@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_store_result@4 referenced in function "protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ)

qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_attr_set@12 referenced in function "protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_bind_result@8 referenced in function "protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_affected_rows@4 referenced in function "protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ
)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_execute@4 referenced in function "protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_bind_param@8 referenced in function "protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_stmt_reset@4 referenced in function "protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_character_set_name@4 referenced in function "class QTextCodec * __cdecl codec(struct st_mysql *)" (?codec@@YAPAVQTextCodec@@PAUst_mysq
l@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_thread_init@0 referenced in function "public: virtual bool __thiscall QMYSQLDriver::open(class QString const &,class QString const &,c
lass QString const &,class QString const &,int,class QString const &)" (?open@QMYSQLDriver@@UAE_NABVQString@@000H0@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_get_server_version@4 referenced in function "public: virtual bool __thiscall QMYSQLDriver::open(class QString const &,class QString co
nst &,class QString const &,class QString const &,int,class QString const &)" (?open@QMYSQLDriver@@UAE_NABVQString@@000H0@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_get_client_version@0 referenced in function "public: virtual bool __thiscall QMYSQLDriver::open(class QString const &,class QString co
nst &,class QString const &,class QString const &,int,class QString const &)" (?open@QMYSQLDriver@@UAE_NABVQString@@000H0@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_set_character_set@8 referenced in function "public: virtual bool __thiscall QMYSQLDriver::open(class QString const &,class QString con
st &,class QString const &,class QString const &,int,class QString const &)" (?open@QMYSQLDriver@@UAE_NABVQString@@000H0@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_options@12 referenced in function "public: virtual bool __thiscall QMYSQLDriver::open(class QString const &,class QString const &,clas
s QString const &,class QString const &,int,class QString const &)" (?open@QMYSQLDriver@@UAE_NABVQString@@000H0@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_close@4 referenced in function "public: virtual bool __thiscall QMYSQLDriver::open(class QString const &,class QString const &,class Q
String const &,class QString const &,int,class QString const &)" (?open@QMYSQLDriver@@UAE_NABVQString@@000H0@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_select_db@8 referenced in function "public: virtual bool __thiscall QMYSQLDriver::open(class QString const &,class QString const &,cla
ss QString const &,class QString const &,int,class QString const &)" (?open@QMYSQLDriver@@UAE_NABVQString@@000H0@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_real_connect@32 referenced in function "public: virtual bool __thiscall QMYSQLDriver::open(class QString const &,class QString const &
,class QString const &,class QString const &,int,class QString const &)" (?open@QMYSQLDriver@@UAE_NABVQString@@000H0@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_init@4 referenced in function "public: virtual bool __thiscall QMYSQLDriver::open(class QString const &,class QString const &,class QS
tring const &,class QString const &,int,class QString const &)" (?open@QMYSQLDriver@@UAE_NABVQString@@000H0@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_thread_end@0 referenced in function "public: virtual void __thiscall QMYSQLDriver::close(void)" (?close@QMYSQLDriver@@UAEXXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_list_tables@8 referenced in function "public: virtual class QStringList __thiscall QMYSQLDriver::tables(enum QSql::TableType)const " (
?tables@QMYSQLDriver@@UBE?AVQStringList@@W4TableType@QSql@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_list_fields@12 referenced in function "public: virtual class QSqlRecord __thiscall QMYSQLDriver::record(class QString const &)const "
(?record@QMYSQLDriver@@UBE?AVQSqlRecord@@ABVQString@@@Z)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_query@8 referenced in function "protected: virtual bool __thiscall QMYSQLDriver::beginTransaction(void)" (?beginTransaction@QMYSQLDriv
er@@MAE_NXZ)
qsql_mysql.obj : error LNK2019: unresolved external symbol _mysql_real_escape_string@16 referenced in function "public: virtual class QString __thiscall QMYSQLDriver::formatValue(class QSqlField const
 &,bool)const " (?formatValue@QMYSQLDriver@@UBE?AVQString@@ABVQSqlField@@_N@Z)
debug\qsqlmysqld4.dll : fatal error LNK1120: 50 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\link.EXE"' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.

在Qt-Doc上是MySQL库的另一个路径,但我对此进行了更改。我没有opt-Path,库在上面的文件夹中。

我尝试过在VS2008/2010命令提示符下构建这个插件,没有区别。

希望有人能帮助我,谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-07 18:54:57

MasterMito找到了解决方案himself

修复问题:安装了32位版本的MySQL-Server。

票数 0
EN

Stack Overflow用户

发布于 2013-08-29 17:35:25

安装32位版本为我解决了这个问题。但是,一定要确保完全删除之前安装的版本,并且Mysql服务没有运行。您可以从任务管理器->Services中查看此信息。如果该服务已在运行,则可以停止该服务。

安装mysql-5.5.33-win32.msi总是导致在执行实例配置时挂起。因此,我安装了zip并手动启动了mysql服务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5299087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档