编译Ngnix遇到的问题,查看程序依赖的库文件
2014-07-02 23:08
316 查看
要点:ldd 可以读取每个可以运行的程序依赖的 so 文件。
编译的时候提示需要Openssl库.查看本机,已经安装了openssl
查看编译报错文件,查找Openssl所依赖的库
more objs/autoconf.err
查看openssl所依赖的库文件
ldd /usr/bin/openssl
ldd –u /usr/bin/openssl
objdump -x obj 以某种分类信息的形式把目标文件的数据组织(被分为几大块)输出 objdump -t obj 输出目标文件的符号表 objdump -h obj 输出目标文件的所有段概括 [root@rhel nginx-1.6.0]# objdump -x /usr/bin/openssl
/usr/bin/openssl: file format elf64-x86-64
/usr/bin/openssl
architecture: i386:x86-64, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0000000000416e20
Program Header:
PHDR off 0x0000000000000040 vaddr 0x0000000000400040 paddr 0x0000000000400040 align 2**3
filesz 0x0000000000000230 memsz 0x0000000000000230 flags r-x
INTERP off 0x0000000000000270 vaddr 0x0000000000400270 paddr 0x0000000000400270 align 2**0
filesz 0x000000000000001c memsz 0x000000000000001c flags r--
LOAD off 0x0000000000000000 vaddr 0x0000000000400000 paddr 0x0000000000400000 align 2**21
filesz 0x0000000000079114 memsz 0x0000000000079114 flags r-x
LOAD off 0x0000000000079618 vaddr 0x0000000000679618 paddr 0x0000000000679618 align 2**21
filesz 0x0000000000005690 memsz 0x0000000000006640 flags rw-
LOAD off 0x000000000007eca8 vaddr 0x000000000087eca8 paddr 0x000000000087eca8 align 2**21
filesz 0x0000000000004de5 memsz 0x0000000000004de5 flags rw-
DYNAMIC off 0x0000000000079bc8 vaddr 0x0000000000679bc8 paddr 0x0000000000679bc8 align 2**3
filesz 0x0000000000000210 memsz 0x0000000000000210 flags rw-
NOTE off 0x000000000000028c vaddr 0x000000000040028c paddr 0x000000000040028c align 2**2
filesz 0x0000000000000044 memsz 0x0000000000000044 flags r--
EH_FRAME off 0x0000000000075be8 vaddr 0x0000000000475be8 paddr 0x0000000000475be8 align 2**2
filesz 0x00000000000006f4 memsz 0x00000000000006f4 flags r--
STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**3
filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
RELRO off 0x0000000000079618 vaddr 0x0000000000679618 paddr 0x0000000000679618 align 2**0
filesz 0x00000000000009e8 memsz 0x00000000000009e8 flags r--
Dynamic Section:
NEEDED libssl.so.10
NEEDED libgssapi_krb5.so.2
NEEDED libkrb5.so.3
NEEDED libcom_err.so.2
NEEDED libk5crypto.so.3
NEEDED libcrypto.so.10
NEEDED libdl.so.2
NEEDED libz.so.1
NEEDED libc.so.6
INIT 0x0000000000412c00
FINI 0x00000000004625d8
GNU_HASH 0x00000000004002d0
STRTAB 0x000000000087eca8
SYMTAB 0x00000000004003c0
STRSZ 0x0000000000004d75
SYMENT 0x0000000000000018
DEBUG 0x0000000000000000
PLTGOT 0x0000000000679fe8
PLTRELSZ 0x00000000000062e8
PLTREL 0x0000000000000007
JMPREL 0x000000000040c918
RELA 0x000000000040c2e8
RELASZ 0x0000000000000630
RELAENT 0x0000000000000018
VERNEED 0x000000000040c228
VERNEEDNUM 0x0000000000000003
VERSYM 0x000000000040b96e
0x6ffffef9 0x0000000000406c30
0x6ffffdf7 0x000000000000012c
0x6ffffef8 0x0000000000406d60
0x6ffffdf6 0x0000000000000db0
http://wapiknow.baidu.com/question/523406943.html
linux依赖关系及软件编译更新 linux各种软件相互依赖,如一张网一般,如果需要更新其中一个软件,rpm的好像可以解决软件间的相互依赖关系;如果自己编译更新软件(很多软件没有rpm格式的),用tar更新,如何解决相互依赖关系? 卸载旧版软件,如何将软件间依赖关系更新到新装软件? 我发现我编译更新软件之后,其他软件仍然依赖旧版软件,如果卸载旧软件就会影响其他软件的依赖关系,系统软件网就会有一个大破洞,很多软件都不能再用,严重的只能重装系统。 fuyaosuixin 2013-2-7 下载知道客户端,10分钟内有问必答
最佳推荐答案 脑补……
因为你没有软件,所有这些事情都要自己动手。
ldd 可以读取每个可以运行的程序依赖的 so 文件。
objdump 好像也可以读取依赖的一些内容。
之后用读取的这些内容反推程序对应的软件包,之后把这些反推出来的软件包都重新编译。
一般来说 ldd 对应的 so 文件只要正确,一般函数接口就问题不大,当然并不绝对。
所以,这种情况,最好的解决办法是把所有系统都整体的重新编译一遍。
言外之意,用 tar 源代码升级系统基本函数库是一个典型的找抽行为。 旧软件可以和自己编译的新软件共存啊,只要编译时候指定一个不同的安装目录就行了,可以完全不影响旧软件的。相关文章推荐
- 重写kinect2_viewer,编译高博kinect2在orbslam2上跑的程序(解决cmakefile中库依赖和头文件的问题)
- 转载VS2008 编译出来的exe文件,运行遇到“应用程序配置不正确,程序无法启动”的问题
- linux下用gcc编译c程序时遇到的问题: error: stdio.h: 没有那个文件或目录
- 查看编译C程序中间文件
- 建立androd Hello遇到gen文件错误 无法编译的问题
- 今天编译的时候遇到问题 报告R文件错误..
- Windows环境下编译linux文件遇到的问题
- 如何解决烦人的VS.NET2003编译时“无法将程序集复制到文件,另一个程序正在使用,进程无法访问”的问题?
- VS2008中编译64位程序以及遇到的问题
- 编译《深入解析MFC》第一个程序遇到的问题
- 现在为了让程序兼容vista,我们需要给程序加上一个manifest文件,可是有时候vc6它就会弹出Resource Compiler Error RC2170 的错误,可能是vc6一个bug,我个人对vc6还是很喜欢的,不过经常会有编译死掉或出错的问题,
- 利用暴力反编译的程序处理ArcXML数据遇到的问题小结(纯粹研究目的)
- server 2003 安装 VS 2003 遇到的问题 :安装frontpage 2000 web 客户端 和 安装程序运行时文件 失败
- VS保存和编译问题] 总是出现另一个程序正在使用此文件,进程无法访问
- 编译OpenGL程序遇到的一个奇怪问题
- 怎样自定义文件格式,并用自己的程序打开,遇到问题请高手帮忙解决
- VS-c# web程序:gridview保存Excel文件遇到的问题
- VS 2005 编译遇到的一个头文件 stdafx.h 引起的问题
- 请求帮助:如何解决烦人的VS.NET2003编译时“无法将程序集复制到文件,另一个程序正在使用,进程无法访问”的问题?
- 编译DXUT框架中CustomUI例子遇到问题:无法打开包括文件:“msctf.h”的 解决办法