none
MySQL Connector/C++ linker error问题 RRS feed

  • 问题

  • 小弟最近学习C++和mysql,尝试了C API链接,没有问题。

    浏览官网的时候,发现有connector/c++这么个东西,发现是封装了JDBC的一些东西。发现使用蛮方便的(按官网介绍的方法来看)

    不过,在使用的时候,一直报link error。具体信息如下:

     无法解析的外部符号 "__declspec(dllimport) public: __thiscall sql::SQLString::~SQLString(void)" (__imp_??1SQLString@sql@@QAE@XZ)
     无法解析的外部符号 "__declspec(dllimport) public: __thiscall sql::SQLString::SQLString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)"
     无法解析的外部符号 "__declspec(dllimport) class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_driver_instance(void)" (__imp_?get_driver_instance@mysql@sql@@YAPAVMySQL_Driver@12@XZ)
    无法解析的外部符号 "private: static class sql::Connection * SQLHelper::m_sqlConn" (?m_sqlConn@SQLHelper@@0PAVConnection@sql@@A)

    还有几个warnning,如下:

    “sql::SQLString::realStr”: class“std::basic_string<_Elem,_Traits,_Alloc>”需要有 dll 接口

    开始以为是自己的版本不对,缺少了了sqlstring.文件,从官网下了1.1.1版本重新安装之后,又下了1.1.1的noinstall版本,将其中的sqlstring.h拷到安装目录的cppconn目录下,发现还是有这个问题。

    百思不得其解,请各路大神指点迷津。

    开发工具用的是VS2012,开发环境是win 8 x64。MySql和connector均是x64的

    2012年12月8日 6:47

答案

  • 已解决。编译的环境问题。

    在配置管理器中,设置X64的编译环境即可。但是X64的编译环境没有对应的调试信息,颇为不爽。将mysql装回32位,在win32下编译OK。

    2012年12月9日 9:03

全部回复