当前位置:首页 » 操作系统 » linux查看库依赖

linux查看库依赖

发布时间: 2023-01-29 15:18:08

‘壹’ linuxqt程序依赖库位置

操作如下:
1、从可运行程序的文件中拿出可执行文件。
2、终端下使用ldd命令查看需要的连接库。
3、把ldd查询到的所有需要的库导出。
4、编写.sh文档。
5、把所用到的库,可执行文件,.sh文件放到同一目录下。
6、终端中进入这一目录,输入:chmod+xtest.sh。
7、执行程序点击.sh文件或终端输入:./test.sh。

‘贰’ linux下的静态库创建与查看,及如何查看某个可执行依赖于哪些动态库

创建静态库:
ar -rcs test.a *.o
查看静态库:
ar -tv test.a
解压静态库:
ar -x test.a

查看程序依赖的动态库:
readelf -a xxx|grep library
如:可以看到,下面的交叉程序hello执行依赖于如下两个动态库。
rebi@ubuntu:~/test$ arm-none-linux-gnueabi-readelf -a hello|grep "library"
0x00000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
rebi@ubuntu:~/test$

或者:readelf -l hello 即可。

nm xxx 查看符号
其中,T表示代码段,U表示在其它地方定义,所以需要确保必须在某个.o或库里被定义过。

‘叁’ Linux可执二进制行文件和库依赖查看方法

1、查看依赖库
1.1、查看可执行文件依赖的库有哪些

举例,查看常用的ls工具,依赖哪些库:

1.2、查看动态库,依赖的库有哪些

举例,查看libcap依赖的库有哪些:

‘肆’ 怎么查看linux上安装mysql数据库

怎么查看linux上安装mysql数据库
方法/步骤
1
查找以前是否安装有mysql,使用下面命令:
rpm
-qa|grep
-i
mysql
如果显示有如下包则说明已安装mysql
mysql-4.1.12-3.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
2
如果已安装,则需要删除已安装的数据库,使用以下命令来删除数据库
删除命令:rpm
-e
--nodeps
包名
(
rpm
-ev
mysql-4.1.12-3.RHEL4.1
)
删除老版本mysql的开发头文件和库
命令:rm
-fr
/usr/lib/mysql
rm
-fr
/usr/include/mysql
注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除
rm
-f
/etc/my.cnf
rm
-fr
/var/lib/mysql
下载mysql的rpm包
可以通过wget下载具体的地址因为不能用链接请大家去官网去找
(1)MySQL-server-5.6.10-1.rhel5.x86_64.rpm:MySQL服务器;
(2)MySQL-client-5.6.10-1.rhel5.x86_64.rpm:MySQL客户端;
(3)MySQL-devel-5.6.10-1.rhel5.x86_64.rpm:Mysql开发依赖包。
下载后放到Liunx服务器中,如图所示
安装MySQL
Server的rpm包
rpm
-ivh
MySQL-server-5.6.21-1.linux_glibc2.5.x86_64.rpm
安装过程如图所示
安装完成后会生成root用户的随机密码,请使用“cat
/root/.mysql_secret”或类似命令进行查看。
安装MySQL客户端
rpm
-ivh
MySQL-client-5.6.21-1.linux_glibc2.5.x86_64.rpm
安装MySQL开发依赖包
rpm
-ivh
MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm
启动msyql
安装完成后mysql是没有启动的,运行mysql命令会提示如下错误:
ERROR
2002
(HY000):
Can't
connect
to
local
MySQL
server
through
socket
'/var/lib/mysql/mysql.sock'
(2)
可使用如下命令启动MySQL:
service
mysql
start
或者使用如下命令:
/etc/init.d/mysql
start
可使用SET
PASSWORD命令修改root用户的密码,参考如下:SET
PASSWORD
=
PASSWORD('root123456');
登录MySQL
使用mysql命令登录MySQL服务器,运行MySQL的命令时,会提示需要设置root用户密码
设置开机自启动
/etc/init.d/mysql
start
设置完成后重启系统,使用natstat
–nat命令可看到MySQL的3306端口
至此我们已经安装好了mysql数据库,当然现在我们的数据库还不支持远程连接,远程连接会出现以下代码:1130,ERROR
1130:
Host
192.168.0.10
is
not
allowed
to
connect
to
this
MySQL
server,可以通过以下以下来解决
改表法:在本机登入mysql后,更改“mysql”数据库里的“user”表里的“host”项,从”localhost”改为'%'。
mysql>
mysql>use
mysql;
mysql>select
'host'
from
user
where
user='root';

‘伍’ Linux下程序运行依赖库如何指定

so文件内部有一个自己的名字,可以和文件名不同,这个名字由链接器在link期间写入so库文件中。
你可以使用 readelf -a b.so | grep SONAME,来查看
这个内部名字不因为文件名变化而改变。

‘陆’ Linux 查看依赖库

1.查看依赖的库:
objmp -x xxx.so | grep NEEDED

2.查看可执行程序依赖的库:
objmp -x 可执行程序名 | grep NEEDED

3.查看缺少的库:
ldd xxx.so
4.查看库版本编译等信息:
strings xxx.so
-L -rpath -rpath-link 添加动态库路径

‘柒’ ldd查看动态依赖库

ldd命令用于输出程序或者库文件所依赖的共享库列表。

语法

选项

参数
文件:指定可执行程序或者文库。

ldd原理
首先,ldd不是一个可执行程序,而只是一个shell脚本
ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量,如下: LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIN_NOW、LD_LIBRARY_VERSION、LD_VERBOSE 等。当 LD_TRACE_LOADED_OBJECTS 环境变量不为空时,任何可执行程序在运行时,它都只会显示模块的dependency,而程序并不真正执行。测试结果如下:

ldd 显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载器)来实现的。ld-linux.so模块会先于executable模块程序工作,并获得控制权。因此当上述的那些变量设置时,ld-linux.so选择了显示可执行模块的dependency。
ld-linux.so读取可执行程序的头信息,这些信息采用 Executable and Linking Format 或者(ELF)格式。 它们通过这些消息,来确定哪些库是必须的,以及哪些库需要加载。 然后执行动态链接,把可执行程序当中所有的地址指针与需要加载的库联系起来, 这样程序就可以运行了。
实际上可以直接执行ld-linux.so模块,如: /lib64/ld-linux-x86-64.so.2 --list ./a.out (这相当于 ldd a.out )。

示例

通过上面的信息,我们可以得到以下几个信息:

‘捌’ linux环境下,静态库的依赖关系怎么查

创建静态库: ar -rcs test.a *.o 查看静态库: ar -tv test.a 解压静态库: ar -x test.a 查看程序依赖态库: readelf -a xxx|grep library :看面交叉程序hello执行依赖于两态库 rebi@ubuntu:~/test$ arm-none-linux-gnueabi-readelf -a hello|grep "library" 0x0000000依 (NEEDED) Shared library: [libgcc_s.so.依] 0x0000000依 (NEEDED) Shared library: [libc.so.陆] rebi@ubuntu:~/test$ 或者:readelf -l hello 即 nm xxx 查看符号 其T表示代码段U表示其定义所需要确保必须某.o或库定

‘玖’ linux源码包怎么查看依赖关系

一、可执行文件/二进制文件依赖共享库
ldd命令用来查看可执行文件依赖的共享库文件。
$ ldd --help
Usage: ldd [OPTION]... FILE...
--help print this help and exit
--version print version information and exit
-d, --data-relocs process data relocations
-r, --function-relocs process data and function relocations
-u, --unused print unused direct dependencies
-v, --verbose print all information
示例:
$ ldd helloworld
二、共享库依赖共享库关系
上面的ldd命令无法查看共享库的依赖关系,因为共享库本身并不是可执行文件,我们可以使用

objmp -x libhelloworld.so | grep NEEDED
其中,libhelloworld.so是你的库名称。
附:
readelf命令用于读取ELF Header信息

‘拾’ linux 怎样查找应用依赖的动态库,以及嵌套依赖的动态库

rpm -ivh --test 包名 //用来检查依赖关系;并不是真正的安装;

热点内容
食色抖音上传 发布:2024-05-05 00:55:56 浏览:656
java图片下载 发布:2024-05-05 00:50:45 浏览:597
唱吧如何上传伴奏 发布:2024-05-05 00:49:04 浏览:443
什么配置单反拍视频最好 发布:2024-05-05 00:30:56 浏览:478
sql敏感 发布:2024-05-05 00:28:20 浏览:62
android工程师笔试 发布:2024-05-05 00:10:52 浏览:948
python调试pycharm 发布:2024-05-05 00:10:51 浏览:707
索尼电脑vaio忘了密码如何恢复出厂设置 发布:2024-05-05 00:09:56 浏览:895
安卓系统的用户管理在哪里 发布:2024-05-04 23:12:27 浏览:430
我的世界服务器推荐电脑版免费 发布:2024-05-04 23:04:46 浏览:395