MySQL C ++ Connector未解析的外部符号_get_driver_instance

时间:2013-11-23 21:31:58

标签: c++ mysql

我正在Win 8上使用Connector C ++ 1.1.3和VS 2010 Express。

对于我在Linker中的调试版本 - > General->我有的附加库目录:C:\ Program Files \ MySQL \ Connector C ++ 1.1.3 \ lib \ debug

在链接器中 - >输入我有:mysqlcppconn.lib

我收到链接器错误:Server.obj:错误LNK2019:函数“public:bool __thiscall Server :: Init(void)”中引用了未解析的外部符号_get_driver_instance(?Init @ Server @@ QAE_NXZ)

我增加了额外的包含导演:C:\ Users \ MyName \ Downloads \ boost_1_55_0 \ boost_1_55_0

我认为get_driver_instance()是在mysqlcppconn.lib中定义的。

 #include <cppconn/driver.h>
 #include <cppconn/exception.h>
 #include <cppconn/resultset.h>
 #include <cppconn/statement.h>

 class Server
 {
 private:
    sql::Driver* sqlDriver;
sql::Connection* sqlConn;
 public:
    bool Init();
 };

 bool Server::Init()
 {
    sqlDriver = get_driver_instance();
    return true;
 }

我知道有很多这方面的话题,但我尝试的没有解决它。我没有写过我尝试过的所有东西,因为有很多东西。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,最后通过切换到“Release”而不是“Debug”来解决问题。

这一小改动解决了其他相关问题。 (见Connection Crash in mysql C++

我知道您使用Qt库解决了这个问题,但我想这可以帮助其他陷入困境的人。

编辑: 我一直在对mysql网站(http://dev.mysql.com/downloads/connector/cpp/)进行一些研究,它明确指出: 可能出现的一个问题是,用于构建应用程序的工具与用于构建MySQL Connector / C ++二进制版本的工具不兼容。理想情况下,您需要使用用于构建MySQL Connector / C ++二进制文件的相同工具来构建应用程序。

我到目前为止找到的解决方案是以源格式(非二进制)下载库并使用我需要的设置进行编译。