stripコマンド

9-1.ソース・ビルド・インストール

アニメ『エロマンガ先生』(2017)

面白ーい。血が繋がらない兄妹のどきどきアニメ。子供なのにプロのクリエーターって結構いるんでしょうねえ。うらやましい。尊敬してしまいます。引きこもり万歳です。一つ屋根の下、クリエーターが二人もいたら、影響しあって良い何かが生まれそうです。何かって何だろう。

(中級者向け記事はコチラ 中級者のためのLinuxコマンド入門)

では、ストリップコマンド使います。

簡単なCプログラムを作ってビルドします。

takk@deb8:~$ echo '#include <stdio.h>
int main()
{
  printf("HELLO\n");
}
'>test.c
takk@deb8:~$ gcc test.c
takk@deb8:~$ 
takk@deb8:~/tmp3$ ls -l a.out
-rwxr-xr-x 1 takk takk 6688  4月 24 23:19 a.out
takk@deb8:~/tmp3$ 

実行ファイルに含まれる文字列は、77行ほどありました。

takk@deb8:~$ strings a.out > a.out.strings
takk@deb8:~$ wc -l a.out.strings
77 a.out.strings
takk@deb8:~$ head !$
head a.out.strings
/lib64/ld-linux-x86-64.so.2
	|KC
libc.so.6
puts
__libc_start_main
__gmon_start__
GLIBC_2.2.5
fffff.
[]A\A]A^A_
HELLO
takk@deb8:~$ 

a.outをコピーしたb.outを作って、stripしてみます。

takk@deb8:~$ cp a.out b.out
takk@deb8:~$ strip -s b.out
takk@deb8:~$ ls -l *.out
-rwxr-xr-x 1 takk takk 6688  4月 24 23:19 a.out
-rwxr-xr-x 1 takk takk 4416  4月 24 23:24 b.out
takk@deb8:~$ 

a.outに比べて、b.outではかなりサイズが小さくなっていますね。
内包している文字列はどうなったでしょうか。

takk@deb8:~$ strings b.out > b.out.strings
takk@deb8:~$ wc -l b.out.strings
39 b.out.strings
takk@deb8:~$ 

文字列もたくさん減っています。

削減された文字列はこのとおりです。

takk@deb8:~$ diff [ab].*.strings
14,15d13
< .symtab
< .strtab
42,77d39
< crtstuff.c
< __JCR_LIST__
< deregister_tm_clones
< register_tm_clones
< __do_global_dtors_aux
< completed.6661
< __do_global_dtors_aux_fini_array_entry
< frame_dummy
< __frame_dummy_init_array_entry
< test.c
< __FRAME_END__
< __JCR_END__
< __init_array_end
< _DYNAMIC
< __init_array_start
< _GLOBAL_OFFSET_TABLE_
< __libc_csu_fini
< _ITM_deregisterTMCloneTable
< data_start
< puts@@GLIBC_2.2.5
< _edata
< _fini
< __libc_start_main@@GLIBC_2.2.5
< __data_start
< __gmon_start__
< __dso_handle
< _IO_stdin_used
< __libc_csu_init
< _end
< _start
< __bss_start
< main
< _Jv_RegisterClasses
< __TMC_END__
< _ITM_registerTMCloneTable
< _init
takk@deb8:~$ 

コメント

タイトルとURLをコピーしました