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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 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,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
11月前
|
Java Maven
【亮剑】Java项目开发中常遇到Jar 包依赖冲突问题,主要由不同版本库、循环依赖、传递依赖和依赖范围不当引起
【4月更文挑战第30天】Java项目开发中常遇到依赖冲突问题,主要由不同版本库、循环依赖、传递依赖和依赖范围不当引起。解决冲突需分析依赖树、定位冲突源、调整类加载顺序等。方法包括排除冲突依赖、统一管理版本、限定依赖范围、合并冲突类、升级降级库版本及拆分模块。关注依赖关系,及时解决冲突,保障项目稳定运行。
665 0
|
11月前
|
程序员 Linux C语言
【cmake 项目依赖冲突】CMake进阶:优雅解决目标依赖和安装问题
【cmake 项目依赖冲突】CMake进阶:优雅解决目标依赖和安装问题
1129 0
|
11月前
|
缓存 Unix 编译器
Cmake 的构建结构:理解 Cmake 的构建过程和依赖管理
Cmake 的构建结构:理解 Cmake 的构建过程和依赖管理
212 0
|
11月前
|
iOS开发 Ruby Perl
如何在Podfile中指定依赖关系?
如何在Podfile中指定依赖关系?
117 2
|
Java 数据库连接 API
Gradle依赖管理:编译时和运行时依赖的区别
Gradle依赖管理:编译时和运行时依赖的区别
160 0
|
前端开发 JavaScript 内存技术
nvm安装解决项目之间的依赖关系
nvm安装解决项目之间的依赖关系
109 0
|
C语言 Python Windows
Nuitka打包一、安装依赖
nuitka,python打包exe工具
1385 0
|
前端开发
npm是如何处理依赖关系的
npm是如何处理依赖关系的
176 0
下列软件包有未满足的依赖关系,依赖: libxxx(= 2.2.10) 但是 2.3.0正要被安装
下列软件包有未满足的依赖关系,依赖: libxxx(= 2.2.10) 但是 2.3.0正要被安装
424 0