linux下mysql编程链接问题

昨天写一段程序需要写db,调用了mysql的c api,编译发生了链接错误:

/usr/lib/mysql/libmysqlclient.a(ssl.o):(.gnu.linkonce.d.__vt_Q25yaSSL7Message+0x8): undefined reference to `__pure_virtual'

……

Makefile中的链接:…… -L/usr/lib/mysql -lmysqlclient

第一反应是安装的mysql devel与client的版本不对,仔细检查了一下当前的版本, rpm -q -a | grep MySQL看了下,

MySQL-devel-5.0.22-0
MySQL-server-community-5.1.59-1.sles10
MySQL-client-community-5.1.59-1.sles10

应该没啥问题,是mysql官网上的suse v10的最新发布版本了。 为了确保没有问题,特地重新安装了一遍,还是没有效果。

开始万能的google,翻到一篇靠谱的文章,说是要把mygcc给链进去,于是改成…… -L/usr/lib/mysql -lmysqlclient -lmygcc,重新编译了一把,错误少了很多,但是还有有如下错误:

/usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_compress_alloc':
(.text+0xdb): undefined reference to `compress'
/usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_uncompress':
(.text+0x16d): undefined reference to `uncompress'

这个仔细看一下,应该是gzip没有链接上,再加多一个-lz,改成 -L/usr/lib/mysql -lmysqlclient -lmygcc -lz重新编译搞定!或者不用-l,直接链接动态链接库: /usr/lib/mysql/libmysqlclient.a  /usr/lib/mysql/libmygcc.a /usr/lib/libz.a,也编译通过。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值