未解析的符号:sql::mysql::get_driver_instance(void)
Unresolved symbol: sql::mysql::get_driver_instance(void)
我有一个使用MySQL连接器与MySQL数据库通信的程序。该应用程序在Visual Studio 2008中运行良好。我试图让应用程序与Visual Studio 2010构建,这就是问题开始的地方。
MySQL连接器1.05不支持VS 2010,他们没有1.1.0的二进制版本可以与VS 2010一起工作。MySQL的信息说要下载Connector c++ 1.10的源代码并使用VS 2010进行构建。经过大量的工作,我建造了它。示例运行。
然而,当我用新构建的连接器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连接器c++ 1.1.0的例子使用上面的行,他们没有得到错误。我试过链接mysqlconn-static。自由,mysqlconn。自由,mysqlclient。自由,libmysql。
有趣的是,根据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连接器1.1.0与Visual Studio 2010工作吗?
如果是,请回复一步一步的例子,并指出是dll还是静态库。
2. VS编译器如何选择返回
MySQL_Driver *
的get_driver_instance()
函数而不是返回Driver *
的函数?我甚至没有得到任何关于模糊函数的警告或错误(因为重载必须不仅仅是返回类型的不同)。
我使用Visual Studio 2010在windows -7x64位,MySQL连接器c++ 1.1.0。
参见:
get_driver_instance()在Qt中崩溃
对'get_driver_instance'
的未定义引用MySQL c++ Connector: get_driver_instance'
mysql-connector-c++ - ' get_driver_instance '不是' sql::mysql '的成员
如何修复未解决的外部符号由于MySql连接器c++ ?
部分函数名称已更改。我的最佳解决方案是通过使用预处理器条件来区分它们。
我也有同样的问题,我一直得到:
*sampletest.obj : error LNK2001: unresolved external symbol __imp__get_driver_instance*
虽然我尝试了32位连接器,问题得到了解决(你可能想尝试一下,如果你幸运的话,它可能适合你),但我使用的是64位mysql,windows 7,所以有一点兼容性问题。我还在寻找解决上述问题的方法。
逐字跟随教程,链接所有库我认为c++ 1.10连接器可能有一些问题。
- C++ Singleton - Prevent ::instance() to variable
- DrawIndexedInstanced 具有不同的 Index Count per Instance (Directx
- 我可以将QCoreApplication::instance()用于孤儿QObjects吗?
- ATL OLE DB Consumer Templates 与 Microsoft OLE DB Driver for
- "terminate called after throwing an instance of std::invalid_argument' what(): stoi ?"
- cin.get() 导致"no instance of overloaded function"错误
- 方括号在"map <string, int> instance[numberFeatures];"中是什么意思
- 尝试在虚幻引擎中通过C++添加视口时出错"No instance of overloaded function CreateWidget"
- 3D 矢量 - "No instance of overload function?"
- 不能使用矢量::插入"no instance of overloaded function..."
- 矩阵类:"No instance of overloaded function push_back matches the argument list"
- 如何修复矢量push_back中的"no instance of overloaded function"?
- 从我的driver.cpp调用派生类
- 如何使用 mongo-cxx-driver 的 **insert** 函数将包含静态数据的多维数组插入到数据库中
- 内存泄漏与mongocxx::instance inst{};.
- cuda错误Cudart卸载(错误29)由于"driver shutting down"
- "No instance of overload function"
- 如何使用Mongo-CXX-Driver设置Visual Studio项目设置
- 为什么我的交易没有回滚?Qt Mysql odbc driver.
- 调用AAssetManager_fromJava时崩溃:"JNI WARNING: instance fieldID 0x571819bc not valid"