
正文
linux的ldd命令,linuxid命令
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Unix\Linux下如何查看可执行文件调用的函数接口
1、nm 命令 可以看到符号表(不是所有库都包含这些信息,因为代码在执行的时候只用地址,这些信息是调试用的,正式的版权软件不一定包含这些),其中可以看到函数名,和变量名。
2、方法如下:下载一个 名为 : hexedit的工具,也可以使用od -s 来查看,还可以使用strings命令来查看。
3、进入linux,使用“ cat /etc/services ”命令,可以查看所有服务默认的端口列表信息。使用“netstat”命令,查看正在连接的端口【连接】列表信息。使用“nestat -a”命令,查看所有服务端口【监听、连接】列表信息。
4、-p 父目录不存在情况下先生成父目录 (parents) eg: mkdir linux/test 如果目录linux不存在,则报错,使用参数-p即可自动创建父目录。
相关问答
Q1: 关于linux下连接动态库问题
linux 加载当前目录的动态库的方法是:设置合适的环境变量LD_LIBRARY_PATH。
主要知识点:Linux的虚拟环境搭建和应用Django的安装。
学一下基础的Linux, 可以电脑装下双系统,或者直接买个学生服务器操作操作。Linux的相关课程, 可以直接B 站找。
动态库 在程序编译时不会被连接到目标代码中,在后期运行时才会载入,不同的应用程序如果调用相同的库,内存中只有一份共享库的拷贝,也就避免了空间的浪费问题。
如果发现libXXX.so不存在,你可能没安装包含库的程序。一般google一下“XXX linux”就能找到相应的软件。
在linux上,你在ps中说的那种将动态库作为一个参数传到程序里的使用方式,是通过dlopen函数将.so加载到当前进程中,并且通过ld.so将.so链接进当前进程。
Q2: linux下的静态库创建与查看,及如何查看某个可执行依赖于哪些动态库...
静态库 可以把它想象成是一些代码的集合,在可执行程序运行前就已经加到了代码中,成为了执行程序的一部分,一般是以.a为后缀的文件名,Windows下后缀为.lib。
动态库文件名命名规范和静态库文件名命名规范类似,也是在动态库名增加前缀lib,但其文件扩展名为.so。例如:我们将创建的动态库名为myhello,则动态库文件名就是libmyhello.so。用gcc来创建动态库。
第四步:在程序中使用静态库。gcc -o main main.c -L. -ltest 因为是静态编译,生成的执行文件可以独立于.a文件运行。第五步:执行。
测试结果如下:ldd 显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载器)来实现的。ld-linux.so模块会先于executable模块程序工作,并获得控制权。
最好知道静态库的原文件(.c),要是知道声明文件(.h)也比较好。 ar -t YourFile 看其结构,找其中的原文件。 可以将库文件下到本地用UE打开,然后你就找吧。
objdump 是 gcc 套件中用来查看 ELF 文件的工具,具体详细用法不进行介绍,此处只讲解如何进行一个动态库和静态库中导出函数的查看。1). 查看依赖项:objdump -x xxx.so | grep NEEDED 。
Q3: 同一程序可以在不同的linux上运行吗
1、可以用 ldd 命令查看可执行文件依赖于哪些动态链接库,只要目标系统里有这些库就是可以的。当然 32 位 / 64 位不能混用。我说的是你直接把可执行文件复制过去,源代码的可移植性一般更好。
2、题主是否想询问“linux上python打包可以在其他版本linux上吗”?可以。可以在一个Linux版本上打包linux上python程序,将打包后的程序拷贝到其他版本的Linux上运行。linux上python的跨平台特性可以在不同的操作系统和版本上运行。
3、通常编译后的C/C++程序只能在某一系列的系统中运行,比如在windows下编译的程序可以在 Win10, Win8, win7 。。
4、需要依赖jvm虚拟运行环境,只有在不同操作系统(各种linux,windows,macos,unix)上安装配套的jvm环境(jsdk包),都可以正常运行。python以及与之类似的脚本语言程序,需要安装对应的解释器,即可保证不同系统上可以运行。
5、只有兼容的C源码,才能直接移植到其他平台,编译并运行。但是兼容是很难的,因为 windows一开始就没打算和 unix/linux 兼容,所以很多系统接口都不一样,比如进程、线程创建之类的,都完全不一样。
linux的ldd命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linuxid命令、linux的ldd命令的信息别忘了在本站进行查找喔。







