【发布时间】:2012-06-01 11:38:40
【问题描述】:
我想在 linux 中使用 C++ 连接到一个 mysql 数据库。在我的本地机器上,我正在运行 Ubuntu,并安装了 mysql 服务器和客户端包:
sudo apt-get install mysql-server mysql-client
我遇到了Mysql++,但是在从他们的二进制包运行 ./configure 时遇到了一些问题。错误说:
检查 MySQL 库目录...配置:错误:在 '/usr/lib64 /usr/lib /usr/lib64/mysql /usr/lib/mysql /usr/local/lib64 / 中找不到 mysqlclient 库usr/local/lib /usr/local/lib/mysql /usr/local/mysql/lib /usr/local/mysql/lib/mysql /usr/mysql/lib/mysql /opt/mysql/lib /opt/mysql/ lib/mysql /sw/lib /sw/lib/mysql'
我知道我可以在哪里使用这个命令来指定路径:
./configure --with-mysql-lib=/...
但我不知道该指向哪里。我使用 whereis mysql 但找不到任何包含 lib 子目录的 mysql 目录。 mysqlclient 库会安装在哪里?
编辑:
定位libmysqlclient后我回来了
/usr/lib/i386-linux-gnu/libmysqlclient.so.18
/usr/lib/i386-linux-gnu/libmysqlclient.so.18.0.0
/usr/lib/i386-linux-gnu/libmysqlclient_r.so.18
/usr/lib/i386-linux-gnu/libmysqlclient_r.so.18.0.0
/usr/share/doc/libmysqlclient18
/usr/share/doc/libmysqlclient18/changelog.Debian.gz
/usr/share/doc/libmysqlclient18/版权
/var/cache/apt/archives/libmysqlclient18_5.5.22-0ubuntu1_i386.deb
/var/lib/dpkg/info/libmysqlclient18:i386.list
/var/lib/dpkg/info/libmysqlclient18:i386.md5sums
/var/lib/dpkg/info/libmysqlclient18:i386.postinst
/var/lib/dpkg/info/libmysqlclient18:i386.postrm
/var/lib/dpkg/info/libmysqlclient18:i386.shlibs
所以,我尝试了./configure --with-mysql-lib=/usr/lib/i386-linux-gnu,它似乎完成了,没有任何抱怨。
虽然这解决了 ./configure 完成的问题,但我还有更多的麻烦。当我运行make 时,一切都很好,直到这一点:
在 ./lib/sql_buffer.h:31:0 包含的文件中, 来自 ./lib/sql_buffer.cpp:26: ./lib/refcounted.h:258:2: 错误:‘size_t’没有命名类型 ./lib/refcounted.h:在构造函数“mysqlpp::RefCountedPointer::RefCountedPointer()”中:./lib/refcounted.h:89:2: 错误: 类‘mysqlpp::RefCountedPointer’没有任何 名为“refs_”的字段 ./lib/refcounted.h:在构造函数中 'mysqlpp::RefCountedPointer::RefCountedPointer(T*)': ./lib/refcounted.h:100:2:错误:类‘mysqlpp::RefCountedPointer’没有任何名为‘refs_’的字段 ./lib/refcounted.h:104:4:错误:“refs_”未在此声明 范围./lib/refcounted.h:104:16:错误:预期的类型说明符之前 ‘size_t’ ./lib/refcounted.h:104:16: 错误:预期‘;’之前 ‘size_t’ ./lib/refcounted.h:在构造函数中 'mysqlpp::RefCountedPointer::RefCountedPointer(const ThisType&)': ./lib/refcounted.h:112:2: 错误: 类 ‘mysqlpp::RefCountedPointer’没有任何字段 命名为“refs_”./lib/refcounted.h:115:8:错误:“refs_”不是 在此范围内声明 ./lib/refcounted.h:在析构函数中 'mysqlpp::RefCountedPointer::~RefCountedPointer()': ./lib/refcounted.h:125:7:错误:“refs_”未在此声明 范围./lib/refcounted.h:在成员函数'void mysqlpp::RefCountedPointer::swap(mysqlpp::RefCountedPointer::ThisType&)': ./lib/refcounted.h:246:13: 错误:'refs_' 是 未在此范围内声明 make: *** [mysqlpp_sql_buffer.o] 错误 1
我对 C++ 不是很熟悉,所以我不确定该错误的确切含义。任何关于如何从这一点获得 Mysql++ 设置的帮助或指导将不胜感激。不过,我承认我也开始寻找可以使用的替代库。
【问题讨论】: