您的位置:首页 > 运维架构 > Linux

linux下编译安装mysql++

2011-01-27 13:34 381 查看
版本为3.1.0

先解压源代码 tar -xzvf mysql++-3.1.0.tar.gz

>>../configure

>>make

发现下面编译make不过:

/usr/local/mysql++-3.1.0/bk-deps g++ -c -o ssqlsxlat_genv2.o -Ilib -I/usr/local/mysql/include/mysql -g -O2 ./ssx/genv2.cpp

./ssx/genv2.cpp: In function ‘bool generate_ssqls2(const char*, const ParseV2*)’:

./ssx/genv2.cpp:71: error: ‘strcmp’ was not declared in this scope

make: *** [ssqlsxlat_genv2.o] Error 1

>>vi ./ssx/genv2.cpp

增加

#include<cstring>

重新make

>>make

安装

>>make intall

可以发现目录下已经有编译好的各个sample

随便找个执行验证下就行了

比如:

>>./simple1

发现出错:

error while loading shared libraries: libmysqlclient.so.16: cannot open share object file

是没有把libmysqlclient.so.16的路径给包含进linux环境中,

打开

>>vi /etc/ld.so.conf

添加所需要的lib路径即可(这里需要加入mysql的安装路径,我的是/usr/local/mysql/lib/mysql)

然后执行

>>/sbin/ldconfig -v

再次运行示例

>>./simple1

然后就ok了

注:

发现mysql++示例中的 server user pass等信息是通过里面有个commandLine解析的,而此cmd中竟然没有port信息,查看mysqlpp::Connection源代码发现port默认参数是0,而实际我们安装的mysql端口基本上都是3306,为了测试的方面,我更改了源代码

>>vi /usr/local/mysql++-3.1.0/lib/connection.h

红色部分即可

Connection(const char* db, const char* server = 0, const char* user = 0,

const char* password = 0, unsigned int port = 3306
);

然后重新

>>make

>>make intall

跑示例:

这个是网db中插入测试数据

>>./resetdb -s 127.0.0.1 -u root -p root

后面才是真正的测试了

>>./simple1 -s 127.0.0.1 -u root -p root

发现ok了吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: