就是搜索动态链接库 库函数的
② linux nm b 占用 内存吗
/usr/ccs/bin/nm
用途
显示关于对象文件、可执行文件以及对象文件库里的符号信息。
语法
nm [ -A ] [ -C ] [ -X {32|64|32_64}] [ -f ] [ -h ] [ -l ] [ -p ] [ -r ] [ -T ] [ -v ] [ -B | -P ] [ -e | -g | -u ] [ -d | -o | -x | -t Format ] File
描述
nm 命令显示关于指定 File 中符号的信息,文件可以是对象文件、可执行文件或对象文件库。如果文件没有包含符号信息,nm 命令报告该情况,但不把它解释为出错条件。 nm 命令缺省情况下报告十进制符号表示法下的数字值。
nm 命令把以下符号信息写入标准输出:
库或对象名
如果您指定了 -A 选项,则 nm 命令只报告与该文件有关的或者库或者对象名。
符号名称
符号类型
nm 命令使用以下符号(用同样的字符表示弱符号作为全局符号)之一来表示文件符号类型:
A Global absolute 符号。
a Local absolute 符号。
B Global bss 符号。
b Local bss 符号。
D Global data 符号。
d Local data 符号。
f 源文件名称符号。
T Global text 符号。
t Local text 符号。
U 未定义符号。
值
大小
如果可应用,nm 命令报告与符号有关的大小。
标志
-A 每行或者显示全路径名称或者显示对象库名。
-B 在 Berkeley 分发(BSD)格式中显示输出:
值 类型 名称
-C 限制解码(demangle) C++ 名称。缺省是解码所有 C++ 符号名。
注:
C++ 对象文件中的符号在被使用前它们的名称已经被解码了。
-d 用十进制显示符号的值和大小。这是缺省的。
-e 只显示静态的和外部的(全局)符号。
-f 显示完整的输出,包括冗余的 .text、 .data 以及 .bss 符号,这些在通常都是被限制的。
-g 只显示外部的(全局)符号。
-h 限制输出头数据的显示。
-l 通过给 WEAK 符号的编码键附加一个 * 来区分 WEAK 和 GLOBAL 符号。如果和 -P 选项一起使用, WEAK 符号的符号类型显示如下:
V
Weak Data 符号
W
Weak Text 符号
w
Weak 未定义符号
Z
Weak bss 符号
-o 用八进制而不是十进制数来显示符号的值和大小。
-P 以标准可移植输出格式显示信息:
库/对象名 名称 类型 值 大小
该格式以十六进制符号表示法显示数字值,除非您用 -t、-d 或 -o 标志指定不同的格式。
如果您指定了 -A 标志 -P 标志只显示 库/对象名字段。同样,-P 标志只显示大小适用的符号大小字段。
-p 不排序。输出按符号表顺序打印。
-r 倒序排序。
-T 把可能会溢出它的列的每个名字截短,使显示的名字的最后一个字符是星号(*)。缺省情况下,nm 显示列出的符号的全名,并且一个比为其设置的列的宽度长的名称会引起名称后的每个列无法对齐。
-t Format 显示指定格式下的数字值,其中 Format 参数是以下符号表示法之一:
d
十进制符号表示法。这是 nm 命令的缺省格式。
o
八进制符号表示法。
x
十六进制符号表示法。
-u 只显示未定义符号。
-v 按值而不是按字母表顺序排序输出。
-x 用十六进制而不是十进制数来显示符号的值和大小。
-X mode 指定 nm 应该检查的对象文件的类型。 mode 必须是下列之一:
32
只处理 32 位对象文件
64
只处理 64 位对象文件
32_64
处理 32 位和 64 位对象文件
缺省是处理 32 位对象文件(忽略 64 位对象)。 mode 也可以 OBJECT_MODE 环境变量来设置。例如,OBJECT_MODE=64 使 nm 处理任何 64 位对象并且忽略 32 位对象。 -X 标志覆盖 OBJECT_MODE 变量。
注:
nm 命令支持 -- (双连字符)标志。如果文件名会被曲解为一个选项,该标志区别于 File 操作数。例如,要指定文件名以连字符开始,请使用 -- 标志。
退出状态
该命令返回下列出口值:
0 成功完成。
>0 发生错误。
示例
列出 a.out 对象文件的静态和外部符号,请输入:
nm -e a.out
以十六进制显示符号大小和值并且按值排序符号,请输入:
nm -xv a.out
显示 libc.a 中所有 64 位对象符号,忽略所有 32 位对象:
nm -X64 /usr/lib/libc.a
文件
③ NM 是什么
一、nm 命令
二、NM纳米
三、NM耐磨
四、海运、航空度量单位
五、牛米
六:其他
[编辑本段]一、nm 命令
linux中,nm用来列出目标文件的符号清单。 下面是nm命令的格式: nm [-a|--debug-syms] [-g|--extern-only] [-B][-C|--demangle] [-D|--dynamic] [-s|--print-armap][-o|--print-file-name] [-n|--numeric-sort][-p|--no-sort] [-r|--reverse-sort] [--size-sort][-u|--undefined-only] [-l|--line-numbers] [--help][--version] [-t radix|--radix=radix][-P|--portability] [-f format|--format=format][--target=bfdname] [objfile...] 如果没有为nm命令指出目标文件,则nm假定目标文件是a.out。下面列出该命令的任选项,大部分支持“-”开头的短格式和“—“开头的长格式。 -A、-o或--print-file-name:在找到的各个符号的名字前加上文件名,而不是在此文件的所有符号前只出现文件名一次。 例如nm libtest.a的输出如下: CPThread.o: 00000068 T Main__8CPThreadPv 00000038 T Start__8CPThread 00000014 T _._8CPThread 00000000 T __8CPThread 00000000 ? __FRAME_BEGIN__ ………………………………… 则nm –A 的输出如下: libtest.a:CPThread.o:00000068 T Main__8CPThreadPv libtest.a:CPThread.o:00000038 T Start__8CPThread libtest.a:CPThread.o:00000014 T _._8CPThread libtest.a:CPThread.o:00000000 T __8CPThread libtest.a:CPThread.o:00000000 ? __FRAME_BEGIN__ ………………………………………………………… -a或--debug-syms:显示调试符号。 -B:等同于--format=bsd,用来兼容MIPS的nm。 -C或--demangle:将低级符号名解码(demangle)成用户级名字。这样可以使得C++函数名具有可读性。 -D或--dynamic:显示动态符号。该任选项仅对于动态目标(例如特定类型的共享库)有意义。 -f format:使用format格式输出。format可以选取bsd、sysv或posix,该选项在GNU的nm中有用。默认为bsd。 -g或--extern-only:仅显示外部符号。 -n、-v或--numeric-sort:按符号对应地址的顺序排序,而非按符号名的字符顺序。 -p或--no-sort:按目标文件中遇到的符号顺序显示,不排序。 -P或--portability:使用POSIX.2标准输出格式代替默认的输出格式。等同于使用任选项-f posix。 -s或--print-armap:当列出库中成员的符号时,包含索引。索引的内容包含:哪些模块包含哪些名字的映射。 -r或--reverse-sort:反转排序的顺序(例如,升序变为降序)。 --size-sort:按大小排列符号顺序。该大小是按照一个符号的值与它下一个符号的值进行计算的。 -t radix或--radix=radix:使用radix进制显示符号值。radix只能为“d”表示十进制、“o”表示八进制或“x”表示十六进制。 --target=bfdname:指定一个目标代码的格式,而非使用系统的默认格式。 -u或--undefined-only:仅显示没有定义的符号(那些外部符号)。 -l或--line-numbers:对每个符号,使用调试信息来试图找到文件名和行号。对于已定义的符号,查找符号地址的行号。对于未定义符号,查找指向符号重定位入口的行号。如果可以找到行号信息,显示在符号信息之后。 -V或--version:显示nm的版本号。 --help:显示nm的任选项。
[编辑本段]二、NM纳米
1米的10负9次方,符号为nm。1纳米=1毫微米(既十亿分之一米),约为10个原子的长度。假设一根头发的直径为0.05毫米,把它径向平均剖成5万根,每根的厚度即约为1纳米。 纳米技术的含义-1 . 所谓纳米技术,是指在0.1~100纳米的尺度里,研究电子、原子和分子内的运动规律和特性的一项崭新技术。科学家们在研究物质构成的过程中,发现在纳米尺度下隔离出来的几个、几十个可数原子或分子,显著地表现出许多新的特性,而利用这些特性制造具有特定功能设备的技术,就称为纳米技术。 . 纳米技术与微电子技术的主要区别是:纳米技术研究的是以控制单个原子、分子来实现设备特定的功能,是利用电子的波动性来工作的;而微电子技术则主要通过控制电子群体来实现其功能,是利用电子的粒子性来工作的。人们研究和开发纳米技术的目的,就是要实现对整个微观世界的有效控制。 . 纳米技术是一门交叉性很强的综合学科,研究的内容涉及现代科技的广阔领域。1993年,国际纳米科技指导委员会将纳米技术划分为纳米电子学、纳米物理学、纳米化学、纳米生物学、纳米加工学和纳米计量学等6个分支学科。其中,纳米物理学和纳米化学是纳米技术的理论基础,而纳米电子学是纳米技术最重要的内容。 纳米技术的含义-2 纳米技术(纳米科技nanotechnology) 纳米技术其实就是一种用单个原子、分子制造物质的技术。 从迄今为止的研究状况看,关于纳米技术分为三种概念。第一种,是1986年美国科学家德雷克斯勒博士在《创造的机器》一书中提出的分子纳米技术。根据这一概念,可以使组合分子的机器实用化,从而可以任意组合所有种类的分子,可以制造出任何种类的分子结构。这种概念的纳米技术未取得重大进展。 第二种概念把纳米技术定位为微加工技术的极限。也就是通过纳米精度的“加工”来人工形成纳米大小的结构的技术。这种纳米级的加工技术,也使半导体微型化即将达到极限。现有技术即便发展下去,从理论上讲终将会达到限度。这是因为,如果把电路的线幅变小,将使构成电路的绝缘膜的为得极薄,这样将破坏绝缘效果。此外,还有发热和晃动等问题。为了解决这些问题,研究人员正在研究新型的纳米技术。 第三种概念是从生物的角度出发而提出的。本来,生物在细胞和生物膜内就存在纳米级的结构。 所谓纳米技术,是指在0.1~100纳米的尺度里,研究电子、原子和分子内的运动规律和特性的一项崭新技术。科学家们在研究物质构成的过程中,发现在纳米尺度下隔离出来的几个、几十个可数原子或分子,显著地表现出许多新的特性,而利用这些特性制造具有特定功能设备的技术,就称为纳米技术。 纳米技术是一门交叉性很强的综合学科,研究的内容涉及现代科技的广阔领域。 纳米科技现在已经包括纳米生物学、纳米电子学、纳米材料学、纳米机械学、纳米化学等学科。从包括微电子等在内的微米科技到纳米科技,人类正越来越向微观世界深入,人们认识、改造微观世界的水平提高到前所未有的高度。我国著名科学家钱学森也曾指出,纳米左右和纳米以下的结构是下一阶段科技发展的一个重点,会是一次技术革命,从而将引起21世纪又一次产业革命。 虽然距离应用阶段还有较长的距离要走,但是由于纳米科技所孕育的极为广阔的应用前景,美国、日本、英国等发达国家都对纳米科技给予高度重视,纷纷制定研究计划,进行相关研究 纳米电子器件的特点 . 以纳米技术制造的电子器件,其性能大大优于传统的电子器件: . 工作速度快,纳米电子器件的工作速度是硅器件的1000倍,因而可使产品性能大幅度提高。功耗低,纳米电子器件的功耗仅为硅器件的1/1000。信息存储量大,在一张不足巴掌大的5英寸光盘上,至少可以存储30个北京图书馆的全部藏书。体积小、重量轻,可使各类电子产品体积和重量大为减小。
[编辑本段]三、NM耐磨
这种是在钢铁行业的叫法:耐磨 如NM360(耐磨三六零)
[编辑本段]四、海运、航空度量单位
nautical mile 海里(1nm=1.8532km)
[编辑本段]五、牛米
严格的说,扭矩是力对物体作用的一种形式,它使物体产生转动,其作用大小等于作用力和力臂(作用力到转动中心的距离)的乘积。所以扭矩的单位是力的单位和距离的单位的乘积,即牛顿*米,简称牛米。 牛米扭矩就是汽车产生的力矩。
[编辑本段]六:Nm:
1.Nm【无损音乐】 Nondestructive music 无损音乐英文缩写。 目前无损压缩格式有APE、FLAC、WavPack、LPAC、WMALossless、AppleLossless、Tak、La、OptimFROG、Shorten,而常见的、主流的无损压缩格式目前只有APE、FLAC。 2.Nm【公制纱支】 【公制纱支】的意思。纺织品经纬纱粗细的单位统称;单位为s。 另外英制纱支为:Ne。
④ 查看linux当前加载库文件的命令
ldd <可执行文件名> 查看可执行文件链接了哪些 系统动态链接库
nm <可执行文件名> 查看可执行文件里面有哪些符号
strip <可执行文件名> 去除符号表可以给可执行文件瘦身
如果我们想从可执行程序里面提取出来一点什么文本信息的话,还可以用strings命令
strings <可执行文件名>
Linux操作系统上面的动态共享库大致分为三类:
1、操作系统级别的共享库和基础的系统工具库
比方说libc.so, libz.so, libpthread.so等等,这些系统库会被放在/lib和/usr/lib目录下面,如果是64位操作系统,还会有/lib64和/usr /lib64目录。如果操作系统带有图形界面,那么还会有/usr/X11R6/lib目录,如果是64位操作系统,还有/usr/X11R6 /lib64目录。此外还可能有其他特定Linux版本的系统库目录。
这些系统库文件的完整和版本的正确,确保了Linux上面各种程序能够正常的运行。
2、应用程序级别的系统共享库
并非操作系统自带,但是可能被很多应用程序所共享的库,一般会被放在/usr/local/lib和/usr/local/lib64这两个目录下面。很多你自行编译安装的程序都会在编译的时候自动把/usr/local/lib加入gcc的-L参数,而在运行的时候自动到/usr/local /lib下面去寻找共享库。
以上两类的动态共享库,应用程序会自动寻找到他们,并不需要你额外的设置和担心。这是为什么呢?因为以上这些目录默认就被加入到动态链接程序的搜索路径里面了。Linux的系统共享库搜索路径定义在/etc/ld.so.conf这个配置文件里面。这个文件的内容格式大致如下:
/usr/X11R6/lib64
/usr/X11R6/lib
/usr/local/lib
/lib64
/lib
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/ImageMagick/lib
假设我们自己编译安装的ImageMagick图形库在/usr/local/ImageMagick目录下面,并且希望其他应用程序都可以使用 ImageMagick的动态共享库,那么我们只需要把/usr/local/ImageMagick/lib目录加入/etc/ld.so.conf文件里面,然后执行:ldconfig 命令即可。
ldcofig将搜索以上所有的目录,为共享库建立一个缓存文件/etc/ld.so.cache。为了确认ldconfig已经搜索到ImageMagick的库,我们可以用上面介绍的strings命令从ld.so.cache里面抽取文本信息来检查一下:
strings /etc/ld.so.cache | grep ImageMagick
输出结果为:
/usr/local/ImageMagick/lib/libWand.so.10
/usr/local/ImageMagick/lib/libWand.so
/usr/local/ImageMagick/lib/libMagick.so.10
/usr/local/ImageMagick/lib/libMagick.so
/usr/local/ImageMagick/lib/libMagick++.so.10
/usr/local/ImageMagick/lib/libMagick++.so
已经成功了!
3、应用程序独享的动态共享库
有很多共享库只被特定的应用程序使用,那么就没有必要加入系统库路径,以免应用程序的共享库之间发生版本冲突。因此Linux还可以通过设置环境变量LD_LIBRARY_PATH来临时指定应用程序的共享库搜索路径,就像我们上面举的那个例子一样,我们可以在应用程序的启动脚本里面预先设置 LD_LIBRARY_PATH,指定本应用程序附加的共享库搜索路径,从而让应用程序找到它。
⑤ linux LVS NAT模式连接不到
LVS NAT模型就是多目标地址转换 ,你的机器2和机器3不能直接响应请求给客户端,而是要经过你的机器1转发给客户端实现地址伪装
很明显,你的机器1是做调度器,eth0是DIP,面向你的机器2和机器3,转发客户端的请求给机器2和机器3,你的eth1面向客户端,响应由DIP转发过来的资源给客户端,你机器1上的ipvsadm的规则已经有了,并且你curl的时候也实现了负载均衡,
弱弱的问一句,你说的连接不到机器1是什么意思?
⑥ /home/linux-2.6.25.8/scripts/mksysmap: line 43:arm-linux-nm command not found 怎么改
这个是因为你在那个文件中使用了arm-linux-nm这个命令,但是你的系统里并没有这个命内令。
简单来说,你打一容个显示当前文件夹内容的 ls 命令,但是如果你系统里没有这个命令,那么系统也会提示command not found,当然也不会显示当前文件夹内容。
这类问题常见于使用交叉编译链编译文件时,由于没有正确设置编译链,系统无法找到对应的命令。依照经验,arm-linux-nm应该是交叉编译指令。
改正方法应该是,检查你的编译工具设置和makefile文件(可能没有),看二者与要编译的目标文件是否匹配,检查方法请参照你的板子手册或者开发指导。正确设置后,重新执行或者编译。
⑦ linux下怎么查本机IP,ifconfig怎么不行
1、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。