gpt4 book ai didi

c++ - 未解析的符号:sql::mysql::get_driver_instance(void)

转载 作者:可可西里 更新时间:2023-11-01 08:54:43 28 4
gpt4 key购买 nike

我有一个使用 MySQL 连接器与 MySQL 数据库通信的程序。该应用程序使用 Visual Studio 2008 运行良好。我试图让应用程序使用 Visual Studio 2010 构建,这就是问题开始的地方。

VS 2010 不支持 MySQL 连接器 1.05,并且它们没有适用于 VS 2010 的二进制版本 1.1.0。MySQL 信息说下载连接器 C++ 1.10 的源代码并使用 VS 2010 构建. 经过大量工作,我构建了它。示例运行。

但是,当我使用新构建的 Connector C++ 1.1.0 构建我的应用程序时,我收到以下错误消息:

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 "private: void __thiscall Database_NS::Manager::initialize_db_driver(void)const " (?initialize_db_driver@Manager@Database_NS@@ABEXXZ)

这是由以下源代码行引起的:

sql::Driver * p_driver = sql::mysql::get_driver_instance();

MySQL Connector C++ 1.1.0 示例使用了上面的行并且没有出现错误。我已尝试与 mysqlconn-static.lib、mysqlconn.lib、mysqlclient.lib、libmysql.lib 链接,但错误消息仍然存在。

有趣的一点是,根据 VS 2010,上面的源代码行使用了这个声明:

CPPCONN_PUBLIC_FUNC MySQL_Driver * get_driver_instance();

注意不同的返回值。

当我使用 Visual Studio 2010 和连接器项目示例时,VS 2010 找不到 connect.cpp 使用的 get_driver_instance() 的声明或函数声明。我程序中的语句正是 connect.cpp 使用的语句,因为我没有做任何更改就复制了它。

其他人已经通过使用另一个驱动程序解决了这个问题。但是,除非必须,否则我不想更改适用于 VS2008 的代码。

这个问题的另一个回复说要定义“mysqlcppconn_EXPORTS”,但这也没有用,回复的评论中也有报告。

这是我的问题:
1. 有人获得了 MySQL Connector 1.1.0 以与 Visual Studio 2010 一起使用吗?
如果是,请回复一步一步的例子并说明是dll还是静态库
2. VS 编译器如何选择返回 MySQL_Driver *get_driver_instance() 函数而不是返回 Driver * 的函数?
我什至没有收到任何关于模糊函数的警告或错误(因为重载必须不仅仅是返回类型)。

我在 Windows-7x64 位、MySQL Connector C++ 1.1.0 上使用 Visual Studio 2010。

另请参阅:
get_driver_instance() crashes with Qt
undefined reference to 'get_driver_instance'
MySQL C++ Connector: undefined reference to `get_driver_instance'
mysql-connector-c++ - ‘get_driver_instance’ is not a member of ‘sql::mysql’
How to fix unresolved external symbol due to MySql Connector C++?

最佳答案

一些函数名称已更改。我最好的解决方案是使用预处理器条件来区分它们。

关于c++ - 未解析的符号:sql::mysql::get_driver_instance(void),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7127284/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com