linux常见依赖库?
查询Linux应用程序运行依赖哪些库
一法:
$(CROSS_COMPILE)ldd AppName
如:
arm_v5t_le-lld test
二法:
$(CROSS_COMPILE)objdump -x AppName |grep NEED
如:
arm_v5t_le-objdump -x test |grep NEED
三法:
$(CROSS_COMPILE)readelf -a AppName |grep "Shared library"
如:
arm_v5t_le-readelf -a test |grep "Shared library"
如何查看linux动态库中包含哪些函数?
主要有两种方法,如下:
1、方法1 nm *.so
2、方法2 readelf -a *.so
说明:
nm可列出.o .a .so中的符号信息,包括诸如符号的值,符号类型及符号名称等。所谓符号,通常指定义出的函数,全局变量等等。
示例说明 :
nm -D libname.so
nm [option(s)] [file(s)]
有用的options:
-A 在每个符号信息的前面打印所在对象文件名称;
-C 输出demangle过了的符号名称;
-D 打印动态符号;
-l 使用对象文件中的调试信息打印出所在源文件及行号;
-n 按照地址/符号值来排序;
-u 打印出那些未定义的符号;
linux怎么把lib库添加到环境变量?
一. 将网络SDK各动态库路径加入到LD_LIBRARY_PATH环境变量
1.在终端输入:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/XXX 只在当前终端起作用
2. 修改~/.bashrc或~/.bash_profile,最后一行添加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/XXX,保存之后,使用source .bashrc执行该文件 ,当前用户生效
3. 修改/etc/profile,添加内容如第2条,同样保存之后使用source执行该文件 所有用户生效
二.在/etc/ld.so.conf文件结尾添加网络sdk库的路径,如/XXX,保存之后,然后执行ldconfig
三.可以将网络sdk各依赖库放入到/lib64、/lib或usr/lib64、usr/lib下
四.可以在Makefile中使用-Wl,-rpath来指定动态路径,直接将dhnetsdk库以–l方式显示加载进来比如:-Wl,-rpath=/XXX -lhdhnetsdk
关于这个问题,要将lib库添加到Linux的环境变量中,可以按照以下步骤进行操作:
1. 打开终端。
2. 使用文本编辑器(如vi、nano)打开 `~/.bashrc` 文件:
```
vi ~/.bashrc
```
3. 在文件的最后添加以下内容:
```
export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH
```
其中,`/path/to/lib` 是lib库所在的路径。
4. 保存并关闭文件。
5. 运行以下命令使修改的环境变量生效:
```
source ~/.bashrc
```
现在,lib库就已经添加到了Linux的环境变量中。
还没有评论,来说两句吧...