strip 命令的使用方法

用途

通過除去綁定程序和符號調試程序使用的信息,降低擴展公共對象文件格式(XCOFF)的對象文件的大小。

語法

strip [ -V ] [ -r [ -l ] | -x [ -l ] | -t | -H | -e | -E ] [ -X {32 |64 |32_64 }] [ -- ] File ...

描寫敘述

strip 命令降低 XCOFF 對象文件的大小。strip 命令從 XCOFF 對象文件里有選擇地除去行號信息、重定位信息、調試段、typchk 段、凝視段、文件頭以及全部或部分符號表。 一旦您使用該命令,則非常難調試文件的符號;因此,通常應該僅僅在已經調試和測試過的生成模塊上使用 strip 命令。使用 strip 命令降低對象文件所需的存儲量開銷。

對于每一個對象模塊,strip 命令除去給出的選項所指定的信息。對于每一個歸檔文件,strip 命令從歸檔中除去全局符號表。

能夠使用 ar -s 命令將除去的符號表恢復到歸檔文件或庫文件里。

沒有選項的 strip 命令除去行號信息、重定位信息、符號表、調試段、typchk 段和凝視段。

標志

-e 在對象文件的可選頭中設置 F_LOADONLY 標志。假設對象文件放置在歸檔中,則該標志告知綁定程序(ld 命令),在與此歸檔鏈接時應忽略該對象文件里的符號。
-E 復位(關閉)對象文件的可選頭中的 F_LOADONLY 位。(請參閱 -e 標志。)
-H 除去對象文件頭、不論什么可選的頭以及全部段的頭部分。
注: 不除去符號表信息。
-l (小寫 L)從對象文件里除去行號信息。

?

-r 除了外部符號和靜態符號條目,將所有符號表信息除去。不除去重定位信息。同一時候除去調試段和 typchk 段。這個選項產生一個對象文件,該對象文件仍能夠用作輸入到鏈接編輯器(ld 命令)中。
-t 除去大多數符號表信息,但并不除去函數符號或行號信息。
-V 打印 strip 命令的版本。
-x 除去符號表信息,但并不除去靜態或外部符號信息。 -x 標志同一時候除去重定位信息,因此將不可能鏈接到該文件。
-X mode 指定應檢查 strip 的對象文件的類型。 mode 必須是下列之中的一個:
32
僅僅處理 32 位對象文件
64
僅僅處理 64 位對象文件
32_64
既處理 32 位對象文件,又處理 64 位對象文件

缺省值是處理 32 位對象文件(忽略 64 位對象文件)。也能夠用 OBJECT_MODE 環境變量來設置 mode 。比如,OBJECT_MODE=64 使 strip 處理不論什么 64 位對象文件,并忽略 32 位對象文件。-X 標志重設 OBJECT_MODE 變量。

-- (雙連字符)將尾隨在該標志后的全部參數解釋為文件名稱。這就同意除去名稱是以連字符開始的文件。

退出狀態

該命令返回下面退出值:

0 成功完畢。
>0 出錯。

演示樣例

  1. 要除去 a.out 文件里的符號表和行號信息,請輸入:
    strip a.out
  2. 要除去 a.out 文件里的對象文件頭,請輸入:
    strip -H a.out
  3. 要除去 lib.a 中的 32 位和 64 位符號表,請輸入:
    strip -X 32-64 lib.a

文件

/usr/ccs/bin/strip 包括 strip 命令。

?

?

?

==================================================================================

UNIX下運行文件的減肥工具 strip
-

  UNIX下文件壓縮命令compress大家都比較熟悉了,它的壓縮率比較高, 和tar命令結合使用來做數據備份是最合適只是了。但compress壓縮也有缺點,就是被壓縮后的文件須要用命令uncompress解壓后才干正常使用。而用strip命令就沒有這個問題,它能清除運行文件里不必要的標示符及調試信息,可減小文件大小而不影響正常使用。但與compress 不同的是,文件一旦strip后就不能恢復原樣了,所以strip是一個減肥工具而不是壓縮工具。并且,被strip后的文件不包括調試信息,就不能用 dbx來調試程序了。如今讓我們來詳細效果怎樣,看以下一個程序:
  #include
  main()
  {
  printf("hello, world/n");
  }
  用cc編譯以后長度為46176字節,用strip后變為了 30648,足足減小了 1/3,并且仍然能夠正常運行。除了用strip外,用共享庫也是減小運行文件長度的方法。
  注:
   1.假設文件大小沒有減小,那就是已經strip過了.
  2.cc 編譯時加上"-s"參數,具有相同的作用。
  某種節約空間的辦法:
  那就是對于單個比較大的可運行文件能夠編寫一個zexec腳本.以下的腳本僅僅是針對/usr/bin/cc的
   uncompress ./cc.Z
  mv cc /tmp
  cd /tmp
  ./cc

轉載于:https://www.cnblogs.com/yxwkf/p/4030551.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273564.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273564.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273564.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

設計模式 之 模板模式

項目源碼:https://gitee.com/Jacob-gitee/DesignMode 個人博客 :http://jacob.org.cn 女媧的失誤 工廠模式中講了女媧造人的故事。人是造出來了,世界也熱鬧了,可是低頭一看,都是清一色的類型,缺少關愛、仇…

使用Java高速實現進度條

基于有人問到如何做進度條,以下給個簡單的做法: 主要是使用JProgressBar(Swing內置javax.swing.JProgressBar)和SwingWorker(Swing內置javax.swing.SwingWorker) 有人肯定會說,不是用線程做的嗎…

Linux 安裝JDK

個人博客 :https://www.siyuan.run CSDN:https://blog.csdn.net/siyuan 微信小程序:思遠Y 安裝時使用到的命令: cd:切換目錄。 eg:cd / mkdir:創建目錄。 eg:mkdir jacob 創建單極目…

Css導航

<div> <ul> <li><a></a></li> <li><a></a></li> <li><a></a></li> .. </ul> </div> <li>中也可包含 <ul> <a></a> <li><a></a>&…

關于js的function.來自百度知道的回答,學習了.

在js中&#xff0c;創建一個函數對象的語法是var myFunction new Function(arg1,…,agrN, body);其中&#xff0c;該函數對象的N個參數放在 函數主體參數body的前面&#xff0c;即函數主體參數必須放在參數列表的最后&#xff0c;也可以無參數new Function(body)。你添加第三個…

Ribbon 支持的9大負載均衡策略

個人博客 &#xff1a;https://www.siyuan.run CSDN&#xff1a;https://blog.csdn.net/siyuan 微信小程序&#xff1a;思遠Y 線性輪詢策略&#xff1a; RoundRibbonRule BaseLoadBalancer 負載均衡器默認采用線性負載輪詢負載均衡策略。 工作流程&#xff1a; RoundRibbonRule…

fedora20開機啟動配置:systemctl

老版fedora中使用chkconfig配置開機啟動&#xff0c;fedora20中&#xff0c;使用chkconfig會出現各種問題。使用systemctl配置。 具體表格如下 轉載于:https://www.cnblogs.com/hh6plus/p/5548083.html

Mysql 字符操作函數相關

常用的字符串函數&#xff1a; 函數說明CONCAT(s1,s2&#xff0c;...)返回一個或多個待拼接的內容&#xff0c;任意一個為NULL則返回值為NULL。CONCAT_WS(x,s1,s2,...)返回多個字符串拼接之后的字符串&#xff0c;每個字符串之間有一個x。SUBSTRING(s,n,len)、MID(s,n,len)兩個…

“cvSnakeImage”: 找不到標識符

1>g:\project\opencv\helloopencv\helloopencv\helloopencv.cpp(74) : error C2065: “CV_VALUE”: 未聲明的標識符1>g:\project\opencv\helloopencv\helloopencv\helloopencv.cpp(74) : error C3861: “cvSnakeImage”: 找不到標識符 增加頭文件 #include <opencv2/l…

Shell 快速入門

個人博客 &#xff1a;https://www.siyuan.run CSDN&#xff1a;https://blog.csdn.net/siyuan 微信小程序&#xff1a;思遠Y 概述 Shell 是一個用 C 語言編寫的程序&#xff0c;它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言&#xff0c;又是一種程序設計語言。 Shell…

Andriod開發 --插件安裝、環境配置、問題集錦

1.用Eclipse搭建Android開發環境和創建第一個Android項目&#xff08;Windows平臺&#xff09; 鏈接閱讀http://www.cnblogs.com/allenzheng/archive/2012/11/10/2762379.html 搭建環境中的不同之處&#xff1a; &#xff08;1&#xff09;我在安裝過程中&#xff0c;在安裝ADT…

《Java 高并發》01 高并發基本概念

基本概念 同步和異步 同步和異步通常是用來形容一次方法調用。 同步方法調用一旦開始&#xff0c;調用者必須等到方法返回才能繼續執行后續操作。 異步方法調用更像一個消息傳遞&#xff0c;一旦開始&#xff0c;方法調用就會立即返回&#xff0c;調用者就可以繼續后續的操…

Android之Http網絡編程(四)

前面幾篇博文簡單的介紹了一些常見的Http的操作&#xff0c;這些操作幾乎都是在新開的線程中進行的網絡請求&#xff0c;并在日志中打印出獲取到的網絡數據。那么&#xff0c;問題來了&#xff01;&#xff08;呃~感覺下一句是藍翔有木有&#xff1f;&#xff09;如何在把獲取到…

《Java 高并發》02 多線程的特性

多線程的三大特性&#xff1a;原子性、可見性和有序性。 原子性 原子性是指一個操作或者多個操作&#xff0c;一旦開始就不會被其他線程干擾&#xff0c;即使是在多個線程一起執行的情況下也不會被干擾。或者不執行。 原子性主要是為了保證數據一致&#xff0c;線程安全問題…

U3D-FSM有限狀態機的簡單設計

http://coder.beitown.com/archives/592 在之前的文章里介紹了一個基礎U3D狀態機框架&#xff08;Unity3D游戲開發之狀態流框架&#xff09;即大Switch的枚舉狀態控制。這種方法雖然容易理解&#xff0c;編程方法也相對簡單&#xff0c;但是弊端是當狀態變得復雜之后&#xff0…

《Java 高并發》04 線程的基本操作

新建線程 新建線程很簡單。只要使用new 關鍵字創建一個線程對象&#xff0c;并且調用 start 方法啟動線程。 Thread t new Thread(); t.start();注意&#xff1a;run 方法不是用來啟動線程。如果調用 run 方法它只會作為普通方法來執行&#xff0c;而不會開啟線程執行。 終止…

Dispatch 方法簡介

后臺執行 dispatch_async(dispatch_get_global_queue(0, 0), ^{ //后臺程執行 something; }); 主線程執行 dispatch_async(dispatch_get_main_queue(), ^{// 主線程執行something; }); 一次性執行 static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ // 主…

linux雜七雜八整理

64系統里執行32位程序&#xff1a; 1、在64系統里執行32位程序如果出現/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory&#xff0c;安裝下glic即可sudo yum install glibc.i6862、error while loading shared libraries: libz.so.1: cannot …

《Java 高并發》05 線程的基本操作

volatile 與 Java 內存模型 Java 內存模型都是圍繞著原子性、有序性和可見性展開的。為了在適當的場合&#xff0c;確保線程間的原子性、有序性和可見性。Java 使用了一些特許的操作或者關鍵字來申明、告訴虛擬機&#xff0c;在這個地方&#xff0c;要尤其注意&#xff0c;不能…

mybatis 2 -常用數據操作

1、寫入數據并獲取自增ID XML配置&#xff1a; <!-- 寫入數據獲取自增ID --><insert id"insertLog" parameterType"com.mamaguwen.entity.sys_loginlog" useGeneratedKeys"true" keyProperty"logid">insert into sys_…