linux strip file nm命令

file命令

# file Display 
Display: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped

nm命令

查看库(.so)、中间件(.o)、可执行文件的函数(.text段)、变量(.bss .data段)

T—->text段

b—->bss段(未初始化)

D—>data段

更多信息用 man nm 指令查看

000094fc T ControlInit
000132a0 B DDR_BUFFER
00013224 D DS18B20Dir
00009ae8 T GetDS18B20Dir
00009fc4 T InitPara
000131b0 D PIPE_FIFO1
000131bc D PIPE_FIFO2
000131c8 D PIPE_FIFO3
000131d4 D PIPE_FIFO4
000131e0 D PIPE_MATH
00013214 D PIPE_PASSFAIL
000131ec D PIPE_REF
032132a8 B PersistTimecounter
00009d90 T RTC_Update
00009c28 T ReadDS18B20
000095e0 T ReadTime
00013294 B SPIFrameWidth
00009a48 T ScanUSBDevice
032132b8 B SysPara
00013298 B USBHostLAFlg
0001300c d _DYNAMIC
000130fc d _GLOBAL_OFFSET_TABLE_
0000a41c R _IO_stdin_used
         w _Jv_RegisterClasses
00013008 d __JCR_END__
00013008 d __JCR_LIST__
03273c8c A __bss_end__
00013288 A __bss_start
00013288 A __bss_start__
000131a8 D __data_start
00008ad4 t __do_global_dtors_aux
00013004 t __do_global_dtors_aux_fini_array_entry
000131ac D __dso_handle
03273c8c A __end__
0000a9d0 A __exidx_end
0000a9c8 A __exidx_start
00013000 t __frame_dummy_init_array_entry
         w __gmon_start__
00013004 t __init_array_end
00013000 t __init_array_start
0000a3fc T __libc_csu_fini
0000a39c T __libc_csu_init
         U __libc_start_main@@GLIBC_2.4
0000a400 T __lstat
         U __lxstat@@GLIBC_2.4
03273c8c A _bss_end__
00013288 A _edata
03273c8c A _end
0000a414 T _fini
00008880 T _init
00008a74 T _start
         U abort@@GLIBC_2.4
         U access@@GLIBC_2.4
00008ab0 t call_gmon_start
         U chdir@@GLIBC_2.4
         U closedir@@GLIBC_2.4
0001328c b completed.5836
000131a8 W data_start
000098ec t del_semvalue
         U execl@@GLIBC_2.4
         U exit@@GLIBC_2.4
         U fclose@@GLIBC_2.4
         U fopen@@GLIBC_2.4
         U fprintf@@GLIBC_2.4
00008af0 t frame_dummy
         U free@@GLIBC_2.4
         U getcwd@@GLIBC_2.4
         U getline@@GLIBC_2.4
         U gmtime@@GLIBC_2.4
00008b24 T key_process_monitor
00013290 B keyprocess_pid
         U localtime@@GLIBC_2.4
0000a400 W lstat
00008d88 T main
         U memcpy@@GLIBC_2.4
         U mkfifo@@GLIBC_2.4
         U open@@GLIBC_2.4
         U opendir@@GLIBC_2.4
0001329c B pSysPara
         U printf@@GLIBC_2.4
         U pthread_create@@GLIBC_2.4
         U puts@@GLIBC_2.4
         U readdir@@GLIBC_2.4
00009824 t sem_create
032132b0 B sem_id
00009950 t semaphore_p
000099cc t semaphore_v
         U semctl@@GLIBC_2.4
         U semget@@GLIBC_2.4
         U semop@@GLIBC_2.4
00009884 t set_semvalue
032132a4 B share_mem_addr
032132a0 B share_mem_dt
032132b4 B share_mem_size

strip命令

在嵌入式linux命令:arm-linux-strip
作用:能清除执行文件中不必要的标示符及调试信息,可减小文件大小而不影响正常使用
备注:file命令可查看可执行文件是否strip

strip之后:
#file Display 
Display: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, stripped

#nm Display
nm: Display: no symbols

参考

linux中的strip命令简介——给文件脱衣服

猜你喜欢

转载自blog.csdn.net/al86866365/article/details/80859810