源码编译依赖关系一例小结

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:
mysql用的是源码5.5.11安装的,在编译的时候使用不同参数,configure能正常通过,make却报错,也有configure报错,nake却正常的
更详细的ndoutils安装问题,请看此文 http://hi.baidu.com/dongjunjia/blog/item/3c0043ed27a52a372697919f.html
这里,我主要是记录下解决此问题的方法
#./configure --prefix=/usr/local/nagios --enable-mysql  LDFLAGS=-L/usr/local/mysql --with-mysql-inc=/usr/local/mysql/include  --with-ndo2db-user=nagios --with-ndo2db-group=nagios --with-mysql=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib/mysql
前面省略掉……
checking for initgroups... yes
checking for strtof... yes
checking for type of socket size... size_t
checking for linker flags for loadable modules... -shared
checking for mysql_init in -lmysqlclient... yes
MySQL library and include file(s) were found!
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating docs/docbook/en-en/Makefile
config.status: creating subst
config.status: creating include/config.h

*** Configuration summary for ndoutils 1.5 02-03-2012 ***:
 General Options:
 -------------------------
 NDO2DB user:    nagios
 NDO2DB group:   nagios

Review the options above for accuracy.  If they look okay,
type 'make' to compile the NDO utilities
.
 configure是成功的
[root@localhost ndoutils-1-5]# make
cd ./src && make
make[1]: Entering directory `/root/nagios/nd2db_test/ndoutils-1-5/src'
gcc -fPIC -g -O2 -I/usr/local/mysql/include -DHAVE_CONFIG_H  -c -o io.o io.c
在包含自 io.c:11 的文件中:
../include/config.h:261:25: 错误:mysql/mysql.h:没有那个文件或目录
../include/config.h:262:26: 错误:mysql/errmsg.h:没有那个文件或目录
make[1]: *** [io.o] 错误 1
make[1]: Leaving directory `/root/nagios/nd2db_test/ndoutils-1-5/src'
make: *** [all] 错误 2
[root@localhost ndoutils-1-5]#
这里make出错,那么查看提示,无法找到mysql.h  errmsg.h
先在系统里面找这2个文件
[root@localhost ndoutils-1-5]# find /usr/local/mysql/ -name mysql.h
/usr/local/mysql/include/mysql.h
[root@localhost ndoutils-1-5]# find /usr/local/mysql/ -name errmsg.h
/usr/local/mysql/include/errmsg.h
第二看报错信息  ../include/config.h  那么由此可以看到  上面2个出错文件是由config .h定义的
#include <mysql/mysql.h>
#include <mysql/errmsg.h>
找到这2个文件的位置
从这里可以看出  mysql/mysql.h mysql/errmsg.h  在系统里面是无法找到的,所以修改如下
#include </usr/local/mysql/include/mysql.h>
#include </usr/local/mysql/include/errmsg.h>
再次make 则顺利通过
当然,处理上面的问题,还可以通过建立链接的方式
对上面解决问题的思路做一个总结:
编译源码包,通常会遇到N多依赖关系,常常提示无法找到某文件,缺少某依赖包,有时候装上相关软件,还是无法继续
往往给我们带来很多麻烦。对于此类问题,首先是找到错误提示信息,针对错误提示,分析系统是否有这个文件,再次是分析源码文件的库文件相关应用位置,上例中,正是由于库文件引用不正确导致的,所以很容易就把吃问题解决了。
   解决问题的方法不重要,思路却是最重要的,思路清晰了,方法自然来了 ,希望给大家带来一点收获


本文转自it你好 51CTO博客,原文链接:http://blog.51cto.com/itnihao/792286,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
机器学习/深度学习 数据采集 人工智能
智能化运维在现代数据中心的应用与挑战####
本文深入探讨了智能化运维(AIOps)技术如何革新现代数据中心的运维管理,通过集成人工智能、大数据分析及自动化工具,显著提升系统稳定性、效率和响应速度。文章首先概述了AIOps的核心概念与技术框架,随后详细分析了其在故障预测、异常检测、容量规划及事件响应等方面的应用实例,最后探讨了实施过程中面临的数据质量、技能匹配及安全性等挑战,并提出了相应的应对策略。本研究旨在为数据中心管理者提供关于采纳和优化AIOps实践的洞见,以期推动行业向更高效、智能的运维模式转型。 ####
|
开发工具
【Azure 环境】使用Microsoft Graph PS SDK 登录到中国区Azure, 命令Connect-MgGraph -Environment China xxxxxxxxx 遇见登录错误
【Azure 环境】使用Microsoft Graph PS SDK 登录到中国区Azure, 命令Connect-MgGraph -Environment China xxxxxxxxx 遇见登录错误
312 0
|
数据采集 算法 物联网
【算法精讲系列】阿里云百炼SFT微调实践分享
本内容为您提供了百炼平台SFT微调的实践案例,帮助您方便并快速借助模型微调定制化您自己的专属模型。
3501 14
|
5天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
303 116