笔记本是X64 WIN7,Visual Studio 2010,配置Connector/C++总是有各种问题,经过一段时间摸索,记录若干有用信息。

最终在台式机上配置成功,X86 WIN7 Visual Studio 2008

(貌似是2010有点问题,怎么都配置不成功,不过我最后编译能通过,怀疑是MySQL的原因,具体一下说明)

============X86 WIN7, Visual Studio 2008, Connector C++ 1.0.5==============

转到项目属性页,

1、configuration properties->C/C++->general->additional include directories

增加:

C:\Program Files\MySQL\MySQL Connector C++ 1.0.5\include

C:\Program Files\MySQL\MySQL Connector C++ 1.0.5\include\cppconn

(当然,这是我的位置)

2、configuration properties->linker->general->additional library directories

增加:

C:\Program Files\MySQL\MySQL Connector C++ 1.0.5\lib\debug

(这里很重要的一点:如果项目当前状态是Debug,则增加以上一条,如果是Release,则加入..\lib\opt)

3、configuration properties->linker->input->additional dependencies

增加:

mysqlcppconn-static.lib

mysqlcppconn.lib

(这个其实就在2、中加入的lib里)

4、对应2、中所增加的目录,其下分别有一个mysqlcppconn.dll,如果你增加的..\lib\debug,则将这里的mysqlcppconn.dll拷一份放到window/system32下面,另一种情况对应。放到项目目录下可能也行。

5、还有就是MySQL安装目录下有个lib\libmysql.dll,把它也放到system32下。

 

基本就这样了,哪下面的代码试一下。mysql默认的数据库有world,其中有个表city:

  1. #include "stdafx.h"    
  2. #include <mysql_connection.h>    
  3. #include <mysql_driver.h>    
  4. #include <statement.h>    
  5. using namespace sql;    
  6. using namespace std;    
  7. void RunConnectMySQL()     
  8. {    
  9.     mysql::MySQL_Driver *driver;    
  10.     Connection *con;    
  11.     Statement *state;    
  12.     ResultSet *result;    
  13.     // 初始化驱动    
  14.     driver = sql::mysql::get_mysql_driver_instance();    
  15.     // 建立链接    
  16.     con = driver->connect("tcp://127.0.0.1:3306""root""root");    
  17.     state = con->createStatement();    
  18.     state->execute("use world");    
  19.     // 查询    
  20.     result = state->executeQuery("select * from city");    
  21.     // 输出查询    
  22.     while(result->next())    
  23.     {    
  24.         int id = result->getInt("ID");    
  25.         //string name = result->getString("name");    
  26.         cout << id << " : " << endl;    
  27.     }    
  28.     delete state;    
  29.     delete con;    
  30. }    
  31. int _tmain(int argc, _TCHAR* argv[])    
  32. {    
  33.     RunConnectMySQL();    
  34.     getchar();    
  35.     return 0;    
  36. }    

 

MySQL Connector/C++ 配置问题_职场

再者就是,

================X64 WIN7 Visual Studio 2010==============

需要说明的是,在64位系统下,需要把程序转换为64位平台,具体:

项目属性页右上角有configuration management->active solution,选择x64,不过在这之前需要安装64位编译器,默认是没有安装的,找到安装的iso文件补一下即可。

然后配置大致相同,需要注意的是,connector/c++也要是64位的,mysql应该也是64位的,但是我这边安装64位的mysql总是配置不成功,妈的。不搞了,能编译,但是访问不了,应该就是这么解决的。

 

暂且这样吧,留此权当笔记,欢迎拍砖。