1.例如现在有一个可执行的程序 main ,当你想要获得该程序运行的时间的时候 可以用 time ./main 这样在终端上
可以打印出程序运行所用的时间。
2.如果想要知道一个程序在运行的时候所链接的系统库可以使用, ldd ./main这样可以输出程序运行时所链接的库。
3.如果想知道一个函数库所导出的函数,可以用 nw xxx.so。nm命令可以列出一个函数库文件中的符号表。它对于静态的函数库和共享的函数库都起作用。对于一个给定的函数库,nm命令可以列出函数库中定义的所有符号,包括每个符号的值和类型。还可以给出在原程序中这个函数(符号)是在多少行定义的,不过这必须要求编译该函数库的时候加“-l”选项
4.在linux下写makefile的时候 编译.cpp 或者.c的时候 可以用编译器的二级优化。 g++ -O2 -c xxx.cpp 效率有非常明显的提高。
5.当工程编译完毕后,在运行之前可以用strip来对可执行程序进行瘦身。UNIX下文件压缩命令compress大家都比较熟悉了,它的压缩率比较高, 和tar命令结合使用来做数据备份是最合适不过了。但compress压缩也有缺点,就是被压缩后的文件需要用命令uncompress解压后才能正常使用。而用strip命令就没有这个问题,它能清除执行文件中不必要的标示符及调试信息,可减小文件大小而不影响正常使用。但与compress 不同的是,文件一旦strip后就不能恢复原样了,所以strip是一个减肥工具而不是压缩工具。而且,被strip后的文件不包含调试信息,就不能用 dbx来调试程序了
6.可见strings能输出文件中的可打印字符串(可指定字符串的最小长度),通常用来查看非文本文件(如二进制可执行文件)中的可读内容。比如:
# strings /lib/tls/libc.so.6 | grep GLIBC
GLIBC_2.0
GLIBC_2.1
GLIBC_2.1.1
GLIBC_2.1.2
GLIBC_2.1.3
GLIBC_2.2
GLIBC_2.2.1
GLIBC_2.2.2
GLIBC_2.2.3
GLIBC_2.2.4
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_PRIVATE
今天就说道这里,会随时更新的。
浙公网安备 33010602011771号