将我的代码与 MySQL Connector C++ 1.1.0 链接时,出现未解决的外部符号错误。
这是错误消息:
6>database.lib(db_manager.obj) : error LNK2019: unresolved external symbol
"class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_driver_instance(void)" (?get_driver_instance@mysql@sql@@YAPAVMySQL_Driver@12@XZ)
referenced in function "class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_mysql_driver_instance(void)" (?get_mysql_driver_instance@mysql@sql@@YAPAVMySQL_Driver@12@XZ)
我曾经dumpbin
在 mysqlconn-static.lib 中获取符号列表,并发现了一个类似的符号:
COMDAT; sym= "class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_driver_instance(void)" (?get_driver_instance@mysql@sql@@YAPEAVMySQL_Driver@12@XZ)
当这两行排成一行时,区别如下:
(?get_driver_instance@mysql@sql@@YAPEAVMySQL_Driver@12@XZ)
(?get_driver_instance@mysql@sql@@YAPAVMySQL_Driver@12@XZ)
YAPEAV
AND之间的名称管理有什么区别YAPAV
?
我有一个想法,我的问题与 MySQL 连接器库和我如何构建代码之间的不兼容有关。
我在网上搜索了一个针对 MySQL Connector 1.1.0 的错误,但它被更改为“不是错误”。
我正在使用 Visual Studio 2010 编译为使用 64 位平台的 32 位目标。
MySQL 连接器 C++ 版本为 1.1.0。