首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL连接器/C++库链接错误问题

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

Stack Overflow用户
提问于 2009-09-20 06:34:52
回答 3查看 9.2K关注 0票数 2

问题:

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

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

代码:

代码语言:javascript
复制
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;
}

错误输出:

代码语言:javascript
复制
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并通读有关如何动态连接到mysqlcppconn.lib的说明。我的问题是设置实际的环境,以便它可以正确地连接到库,本教程对我有很大的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-20 10:46:16

您必须首先更改代码:

代码语言:javascript
复制
driver = sql::mysql::get_mysql_driver_instance();

接下来,你必须将你的代码与mysqlclient.lib链接起来,在你的项目中添加你的库mysqlclient.lib的正确路径:

代码语言:javascript
复制
Properties->Linker->General-> Additionnal Libraries

在这里添加lib的路径。

票数 3
EN

Stack Overflow用户

发布于 2009-09-20 06:56:03

在谷歌上快速搜索一下,你的行应该是这样的:

代码语言:javascript
复制
driver = sql::mysql::get_mysql_driver_instance();
票数 1
EN

Stack Overflow用户

发布于 2009-09-20 06:50:32

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

尝试双击该行:

代码语言:javascript
复制
1>        c:\program files\mysql\mysql connector c++ 1.0.5\include\mysql_driver.h(25) : see declaration of 'sql::mysql::MySQL_Driver'

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1450452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档