就是搜索動態鏈接庫 庫函數的
② 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指令。