windows soci库编译

SOCI

SOCI是一个C++库,用来访问数据库。githu链接点击这里。这个库需要通过源码编译,有对数据库client的依赖,所以本地需要安装了的需要的数据库client。SOCI支持的数据库client如下:

  • DB2
  • Firebird
  • MySQL
  • ODBC with specific database driver
  • Oracle
  • PostgreSQL
  • SQLite 3

我的本机电脑安装的MySQL,所以下面以针对MySQL的编译过程进行说明。

准备

  • windows 7 64bit
  • visual studio 2010
  • mysql-5.7.13-winx64
  • soci源码
  • cmake

编译步骤

1. 代码下载

## 先下载SOIC源码
git clone https://github.com/SOCI/soci.git

## 如果不想直接使用master分支,可以切换到release版本
git checkout v4.0.1

2. 将代码配置为windows visual studio编译环境。SOCI有个好处就是,可以通过cmake生成各种平台的编译环境。

## 1. cmake的安装路径,根据使用情况而定,这里是D:\Program Files\cmake\win\bin\cmake.exe
## 2. -G 参数指定visual studio的版本
## 3. SOCI可以指定BOOST的支持,因为我本地没有下载BOOST所以就不设置了
## 4. 因为我要编译支持MySQL所以指定-WITH_MYSQL
## 5. MYSQL_DIR指定MySQL安装路径,设置到这里就可以了,里面的库头文件会自动查找
"D:\Program Files\cmake\win\bin\cmake.exe" -G "Visual Studio 10 Win64" -DWITH_BOOST=OFF -DWITH_ORACLE=OFF -WITH_MYSQL=ON MYSQL_DIR=D:\mysql-5.7.13-winx64 MYSQL_LIBRARIES=D:\mysql-5.7.13-winx64\lib\libmysql.lib  .

通过上面的步骤就会生成使用Visual Studio 2010的编译方案。

打开SOCI.sln文件直接编译就可以了。这里选择release模式编译:

编译完成后会生成静态库与动态库。这里使用动态库,因为静态库在不同版本的Visual Studio上需要重新编译。下面是最终生成的DLL文件的路径。

注意如果想在后面使用的时候方便一些,还需要复制lib文件。

注意lib文件不要复制错了。将dll跟对应的lib文件、还有SOCI目录的include目录复制到一起就可以使用了。

SOCI library使用

在visual Studio中新建socitest项目,然后在代码目录新建include、lib目录,复制如下文件到这些目录:

注意这里的libmysql.dll是在MySQL安装路径复制的,同理下面的关于mysql的头文件也是从mysql的安装路径复制的。

Visual Studio的设置

在项目-->属性中设置头文件路径如下:

这是library寻找路径:

设置需要导入的库头文件:

测试代码

#include "stdafx.h"
#include "soci/soci.h"
#include "soci/mysql/soci-mysql.h"
#include <iostream>
#include <vector>

using namespace soci;

std::string connectString = "db=samp_db user=root password='xxxxxx' host=localhost charset=gbk";
backend_factory const &backEnd = *soci::factory_mysql();

int _tmain(int argc, _TCHAR* argv[])
{


	session sql(backEnd, connectString);
	mysql_session_backend *sessionBackEnd = 
		static_cast<mysql_session_backend *>(sql.get_backend());

	std::string version = mysql_get_server_info(sessionBackEnd->conn_);

	std::cout << "mysql version: " << version << std::endl;

	///

	system("pause");
	return 0;
}

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值