昨天晚上就想拿C++连接Mysql了,今天一早上就起来尝试,终于弄明白了怎么安装(顺便还给自己补了一波cpp的知识)。
下面是安装方法:
安装
先到官网下载最新版本(其实是不是最新应该没有关系),如果您实在是不原因看英文,那么点击这个链接mysql++-3.2.5.tar.gz即可下载。
下载完成后,首先要解压:
1 | tar -zxvf mysql++-3.2.5.tar.gz |
如果您是萌新,请把上面的”mysql++-3.2.5.tar.gz”换成您下载的压缩包的名字。
之后进入解压后的目录:
1 | cd mysql++-3.2.5.tar.gz |
接下来是安装:
1 | 配置 |
默认会安装到/usr/local/lib和/usr/local/include下。
卸载
先进入mysql++-3.2.5文件夹(即您解压出的文件夹),然后输入:
1 | make uninstall |
如果提示您权限不够记得加sudo。
使用中遇到的问题
如果您按照以上方法安装完成后,使用:#include “mysql++.h”的时候提示您未找到文件,将其换成#include “mysql++/mysql++.h”。(我开头说到的补了Cpp的知识就是因为这个。如果您使用此方法依旧无效后,请将其填写成mysql++.h的绝对路径)。
另外,如果按照我上面所说的修改include语句后,提示缺少”mysql.h”文件,不要急,这是因为mysql++.h包含了connection.h,而connection.h包含了common.h,但是common.h中有这么一段话:
1 | // Now that we've defined all the stuff above, we can pull in the full |
恕我学识浅薄,只能看得似懂非懂,不过显而易见问题就出在了这里。虽然知道作者是基于一定的考量才写下了:
1 |
这段代码。
不过既然出错了,我们就需要手动更正,比如将其换为:
1 |
即可。
编译时如果提示类似undefined reference to `mysqlpp::Connection::Connection(bool)’之类的话,则将/usr/local/lib下的关于mysql++的东西全部拷贝到/usr/lib,在我写这篇博客的时候,需要拷贝的有:libmysqlpp.so libmysqlpp.so.3 libmysqlpp.so.3.2.5 。这个问题困扰了我近一个小时,无论是改ld的配置文件还是指定目录都会出现各种各样的bug,最后脑子一抽就想出了这么个方法。
不行了,太累了,有机会我再出博客介绍mysql++的使用吧,本篇完。