/usr/bin/ld: cannot find -lmysqlclien

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

环境 
centos5.7 x86_64 系统上安装postfix !

 

错误

"/usr/bin/ld: cannot find -lmysqlclient"

类似/usr/bin/ld: cannot find -xxxx的错误有很多,

最简单的判断一下:是否安装相应的mysql-devel包

发现mysql-devel 包已经安装了

 
  1. # rpm -qa | grep mysql 
  2. mysql-devel-5.0.77-4.el5_6.6 
  3. mysql-server-5.0.77-4.el5_6.6 
  4. mysql-devel-5.0.77-4.el5_6.6 
  5. mysql-5.0.77-4.el5_6.6 
  6. php-mysql-5.1.6-27.el5_5.3 
  7. mysql-5.0.77-4.el5_6.6 

 

 

仔细再次查看错误信息,发现都是 /usr/lib/mysql/

 
  1. [postfix-2.6.13]$ make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl  -DUSE_TLS ' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2   -lssl -lcrypto' 
  2.  
  3. /usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.a when searching for -lmysqlclient 
  4. /usr/bin/ld: cannot find -lmysqlclient 
  5. collect2: ld returned 1 exit status 
  6. make: *** [master] Error 1 
  7. make: *** [update] Error 1 
  8.  
  9. [postfix-2.6.13]$ cat conf/makedefs.out  
  10. # Do not edit -- this file documents how Postfix was built for your machine. 
  11. SYSTYPE = LINUX2 
  12. AR  = ar 
  13. ARFL    = rv 
  14. RANLIB  = ranlib 
  15. SYSLIBS = -L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2  -lssl -lcrypto -ldb -lnsl -lresolv 
  16. CC  = gcc $(WARN) -DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS  
  17. OPT = -O 
  18. DEBUG   = -g 
  19. AWK = awk 
  20. STRCASE =  
  21. EXPORT  = AUXLIBS='-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2  -lssl -lcrypto' CCARGS='-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' OPT='-O' DEBUG='-g' 
  22. WARN    = -Wall -Wno-comment -Wformat -Wimplicit -Wmissing-prototypes \ 
  23.     -Wparentheses -Wstrict-prototypes -Wswitch -Wuninitialized \ 
  24.     -Wunused -Wno-missing-braces 

 

解决方法,指定为/usr/lib64/mysql

 
  1. [postfix-2.6.13]$ make clea 
  2.  
  3. [postfix-2.6.13]$ make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl  -DUSE_TLS ' 'AUXLIBS=-L/usr/lib64/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2   -lssl -lcrypto' 
  4.  
  5. [postfix-2.6.13]$ cat conf/makedefs.out  
  6. # Do not edit -- this file documents how Postfix was built for your machine. 
  7. SYSTYPE = LINUX2 
  8. AR  = ar 
  9. ARFL    = rv 
  10. RANLIB  = ranlib 
  11. SYSLIBS = -L/usr/lib64/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2  -lssl -lcrypto -ldb -lnsl -lresolv 
  12. CC  = gcc $(WARN) -DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS  
  13. OPT = -O 
  14. DEBUG   = -g 
  15. AWK = awk 
  16. STRCASE =  
  17. EXPORT  = AUXLIBS='-L/usr/lib64/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2  -lssl -lcrypto' CCARGS='-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' OPT='-O' DEBUG='-g' 
  18. WARN    = -Wall -Wno-comment -Wformat -Wimplicit -Wmissing-prototypes \ 
  19.     -Wparentheses -Wstrict-prototypes -Wswitch -Wuninitialized \ 
  20.     -Wunused -Wno-missing-braces 
  21.  
  22. make && make isntall  
本文转自 dongnan 51CTO博客,原文链接:
http://blog.51cto.com/dngood/744748
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
C语言
gcc静态编译/usr/bin/ld: cannot find -lc
gcc静态编译/usr/bin/ld: cannot find -lc
|
9月前
|
Java Linux Nacos
[root@CentOS7 bin]# ./startup.sh -p 3333 which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbi
[root@CentOS7 bin]# ./startup.sh -p 3333 which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbi
/usr/bin/xsltproc: not found
/usr/bin/xsltproc: not found
68 0
未解决:lrelease: could not exec ‘/usr/lib/qt5/bin/lrelease‘: No such file or directory
未解决:lrelease: could not exec ‘/usr/lib/qt5/bin/lrelease‘: No such file or directory
116 0
|
Shell 数据库管理
/bin/sh: 1: tclsh: not found
/bin/sh: 1: tclsh: not found
215 0
|
Perl
/usr/bin/sed: No such file or directory
/usr/bin/sed: No such file or directory
111 0
解决办法:/usr/bin/ld: 找不到 -lstdc++
解决办法:/usr/bin/ld: 找不到 -lstdc++
153 0
|
开发工具 git
/usr/bin/env: escript: No such file or directory的解决办法
/usr/bin/env: escript: No such file or directory的解决办法
345 0
Error: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8‘ not found (required by /usr/anaconda3/bin/)
Error: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8‘ not found (required by /usr/anaconda3/bin/)
454 0
Error: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8‘ not found (required by /usr/anaconda3/bin/)
|
Linux Shell
在“PATH”设置出错的情况下为什么键入"export PATH=/usr/bin:/usr/sbin:/bin:/sbin"后就可以使用常用命令了
在“PATH”设置出错的情况下为什么键入"export PATH=/usr/bin:/usr/sbin:/bin:/sbin"后就可以使用常用命令了
3931 0