Chinaunix

标题: /usr/bin/ld: cannot find -llibmysqlclient [打印本页]

作者: yuyunliuhen    时间: 2014-07-03 10:37
标题: /usr/bin/ld: cannot find -llibmysqlclient
cbp2make 转化codeblock 工程,生成makefile,codeblock 本身工作正常,
make时产生如上错误,试过很多方式  如:

export LIBRARY_PATH=/usr/lib/mysql

export LD_LIBRARY_PATH=/usr/lib/mysql


ln -s libmysqlclient.so /usr/lib/libmysqlclient.so

切换32位版本 等等,libmysqlclient.so 文件都是存在的,为何呢?还有什么其他方式么?
作者: hellioncu    时间: 2014-07-03 10:44
选项错了,-llibmysqlclient  应该改成  -lmysqlclient
作者: yuyunliuhen    时间: 2014-07-03 10:46
嗯 改了下 试试

/usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.so when searching for -lmysqlclient
/usr/bin/ld: skipping incompatible /usr/lib/libmysqlclient.so when searching for -lmysqlclient
/usr/bin/ld: cannot find -lmysqlclient

还是有错,它确实去找那个文件了
作者: hellioncu    时间: 2014-07-03 10:52
yuyunliuhen 发表于 2014-07-03 10:46
嗯 改了下 试试

/usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.so when searchin ...


不兼容,那多半是32/64位的问题
作者: yuyunliuhen    时间: 2014-07-03 10:57
非常感谢你的回答
我现在把所以的MYSQL的卸载了
那么我装个32位的?
其实昨天已经尝试过这个方案了  从其他32位机器拷贝过来库文件,是不是必须安装32位MYSQL?
作者: hellioncu    时间: 2014-07-03 11:13
yuyunliuhen 发表于 2014-07-03 10:57
非常感谢你的回答
我现在把所以的MYSQL的卸载了
那么我装个32位的?


你要开发32位的程序,就装32位的库,要64位的就装64位的库。
自己拷贝容易拉下东西
作者: yuyunliuhen    时间: 2014-07-03 11:30
开发是用64位的 按理不应该存在兼容性问题的啊
作者: yuyunliuhen    时间: 2014-07-03 11:31
我把所有MYSQL的包卸载 再重装一遍试试看
作者: hellioncu    时间: 2014-07-03 11:42
针对报错的sofile,执行file sofile看看是32还是64位就明白了
作者: yuyunliuhen    时间: 2014-07-03 11:58
嗯 多谢了!
我卸载重装后,先改libmysqlclient 为mysqlclient
然后 ln -s /usr/lib64/mysql/libmysqlclient.so /usr/lib64/libmysqlclient.so 就没有问题了,重装后
/usr/lib/mysql/libmysqlclient.so
/usr/lib/mysql/libmysqlclient.so.16
/usr/lib/mysql/libmysqlclient.so.16.0.0
/usr/lib/mysql/libmysqlclient_r.so
/usr/lib/mysql/libmysqlclient_r.so.16
/usr/lib/mysql/libmysqlclient_r.so.16.0.0
/usr/lib64/mysql/libmysqlclient.so
/usr/lib64/mysql/libmysqlclient.so.16
/usr/lib64/mysql/libmysqlclient.so.16.0.0
/usr/lib64/mysql/libmysqlclient_r.so
/usr/lib64/mysql/libmysqlclient_r.so.16
/usr/lib64/mysql/libmysqlclient_r.so.16.0.0

[lee@localhost vcproj-9]$ file /usr/lib/mysql/libmysqlclient.so.16.0.0
/usr/lib/mysql/libmysqlclient.so.16.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped

[lee@localhost vcproj-9]$ file /usr/lib64/mysql/libmysqlclient.so.16.0.0
/usr/lib64/mysql/libmysqlclient.so.16.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

64 32为共存,不过用64位就好了,总之,谢谢你了。解决了困扰几日的问题。





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2