代码之家  ›  专栏  ›  技术社区  ›  Josh Bradley

MySQL连接器/C++库链接错误问题

  •  2
  • Josh Bradley  · 技术社区  · 16 年前

    问题:

    好吧,我一直在尝试遵循mysql forge wiki和其他一些网站上的示例代码,这些网站提供了一个关于如何获得简单数据库连接的教程,但出于某种原因,我的项目总是在链接错误时失败,我自己也不知道为什么或如何修复它(我仍在学习)。请帮帮我!我已经在项目属性中包含了头文件所需的路径目录,并提供了在MySQL连接器/C++中使用的LIB文件的路径目录。如果有人能给我一个关于如何修复它的有用提示/注释,我使用的代码如下。我认为这与连接到lib文件有关(因为链接错误),但我不知道解决方法。其他人也遇到过这样的麻烦吗?

    http://forge.mysql.com/wiki/Connector_C++ http://dev.mysql.com/tech-resources/articles/mysql-connector-cpp.html#createdb

    代码:

    int main() {
        // do something
        sql::mysql::MySQL_Driver *driver;
        sql::Connection *con;
        sql::Statement *stmt;
        sql::ResultSet *res;
        sql::PreparedStatement *pstmt;
    
        cout << "Starting Driver Instance" << endl;
        driver = sql::mysql::MySQL_Driver::get_mysql_driver_instance();
    
        return 0;
    }
    

    错误输出:

    1>------ Build started: Project: test, Configuration: Debug Win32 ------
    1>Compiling...
    1>main.cpp
    1>c:\users\josh bradley\documents\visual studio 2008\projects\test\test\main.cpp(28) : error C2039: 'get_mysql_driver_instance' : is not a member of 'sql::mysql::MySQL_Driver'
    1>        c:\program files\mysql\mysql connector c++ 1.0.5\include\mysql_driver.h(25) : see declaration of 'sql::mysql::MySQL_Driver'
    1>c:\users\josh bradley\documents\visual studio 2008\projects\test\test\main.cpp(28) : error C3861: 'get_mysql_driver_instance': identifier not found
    1>Build log was saved at "file://c:\Users\Josh Bradley\Documents\Visual Studio 2008\Projects\test\test\Debug\BuildLog.htm"
    1>test - 2 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    

    更新:

    我只是想让大家知道我终于找到了解决问题的方法。对于任何有类似问题的人,请转到 http://blog.ulf-wendel.de/?p=215#hello 并阅读有关如何动态连接mysqlcpcpconn.lib的说明。我的问题是设置实际的环境,以便它能够正确地连接到库,而本教程的帮助非常大!

    3 回复  |  直到 16 年前
        1
  •  3
  •   Nadir SOUALEM    16 年前

    必须首先更改代码:

    driver = sql::mysql::get_mysql_driver_instance();
    

    接下来,您必须将代码与mysqlclient.lib链接起来。 添加lib的正确路径 MySqLclit.LIB 关于您的项目:

    Properties->Linker->General-> Additionnal Libraries
    

    这里添加lib的路径。

        2
  •  1
  •   andreas buykx    16 年前

    一个快速的谷歌搜索建议你的行应该是:

    driver = sql::mysql::get_mysql_driver_instance();
    
        3
  •  0
  •   rahularyansharma    16 年前

    该错误是编译器错误。它抱怨在指定的命名空间中找不到get mysql_driver_instance()。

    尝试双击该行:

    1>        c:\program files\mysql\mysql connector c++ 1.0.5\include\mysql_driver.h(25) : see declaration of 'sql::mysql::MySQL_Driver'
    

    它将向您显示头文件,您可以在其中搜索以确保函数存在。