strip函数

Python中strip()函数详细讲解 strip ()是 Python 中字符串(str)对象的一个内置方法,用于去除字符串开头和结尾的空白字符(包括空格、换行符、制表符等)。它不会修改字符串中间的空白字符。 阅读详情

strip经常用来去除目标文件中的一些符号表、调试符号表信息,以减小程序的大小,在rpmbuild包的最后就用到。
其支持的选项如下:
>strip -h
用法:strip <选项> 输入文件
从文件中删除符号和节
 选项为:
  -I --input-target=<bfdname>      Assume input file is in format <bfdname>
  -O --output-target=<bfdname>     Create an output file in format <bfdname>
  -F --target=<bfdname>            Set both input and output format to <bfdname>
  -p --preserve-dates              Copy modified/access timestamps to the output
  -R --remove-section=<name>       Remove section <name> from the output
  -s --strip-all                   Remove all symbol and relocation information
  -g -S -d --strip-debug           Remove all debugging symbols & sections
     --strip-unneeded              Remove all symbols not needed by relocations
     --only-keep-debug             Strip everything but the debug information
  -N --strip-symbol=<name>         Do not copy symbol <name>
  -K --keep-symbol=<name>          Do not strip symbol <name>
     --keep-file-symbols           Do not strip file symbol(s)
  -w --wildcard                    Permit wildcard in symbol comparison
  -x --discard-all                 Remove all non-global symbols
  -X --discard-locals              Remove any compiler-generated symbols
  -v --verbose                     List all object files modified
  -V --version                     Display this program's version number
  -h --help                        Display this output
     --info                        List object formats & architectures supported
  -o <file>                        Place stripped output into <file>
strip:支持的目标: elf32-i386 a.out-i386-linux efi-app-ia32 elf32-little elf32-big elf64-alpha ecoff-littlealpha elf64-little elf64-big elf32-littlearm elf32-bigarm elf32-hppa-linux elf32-hppa elf64-ia64-little elf64-ia64-big efi-app-ia64 elf32-m68k a.out-m68k-linux elf32-powerpc aixcoff-rs6000 elf32-powerpcle ppcboot elf64-powerpc elf64-powerpcle aixcoff64-rs6000 elf32-s390 elf64-s390 elf32-sparc a.out-sparc-linux elf64-sparc a.out-sunos-big elf64-x86-64 pe-i386 pei-i386 srec symbolsrec tekhex binary ihex trad-core

目标文件分为:可重定位文件、可执行文件、共享文件
strip的默认选项会去除.symbol节的内容以及.debug节的内容,因此尽量只对可执行文件执行strip而不要对静态库或动态库等目标文件strip。


测试代码如下:

/* max.c */
int max(int val1, int val2)
{
int iVal = (val1 > val2) ? val1 : val2;
return iVal;
}
/* min.c */
int min(int val1, int val2)
{
int iVal = (val1 < val2) ? val1 : val2;
return iVal;
}

/* main.c */
#include <stdio.h>

extern int max(int val1, int val2);
extern int min(int val1, int val2);

int main()
{
int val1, val2;

scanf("%d %d", &val1, &val2);
printf("%d/n", max(val1, val2));
printf("%d/n", min(val1, val2));
}
>gcc -c max.c min.c
>ar rcs libcmp.a max.o min.o
>gcc -o test main.c libcmp.a
>gcc -share -fPIC -o libcmp.so max.c min.c
>cp libcmp.a libcmp.a.bak
>cp libcmp.so libcmp.so.bak
>cp test test.orig
>strip libcmp.a libcmp.so
>strip test
>ll -h
总计 92K
-rwxr-xr-x 1 6.9K a.out
-rw-r--r-- 1 1.1K libcmp.a
-rw-r--r-- 1 1.6K libcmp.a.bak
-rwxr-xr-x 1 2.9K libcmp.so
-rwxr-xr-x 1 5.3K libcmp.so.bak
-rw-r--r-- 1  237 main.c
-rw-r--r-- 1   89 max.c
-rw-r--r-- 1  695 max.o
-rw-r--r-- 1   89 min.c
-rw-r--r-- 1  695 min.o
-rwxr-xr-x 1 3.2K test
-rwxr-xr-x 1 6.8K test.orig

选项简释:
The -fPIC flag directs the compiler to generate position independent code section).
The -shared flag directs the linker to create a shared object file.

可见无论是静态库(libcmp.a)还是动态库(libcmp.so)还是可执行文件(test),去掉一些符号信息后都减小了很多,但如果这时再链接这两个库的话是编不过的,因此,如果不是指定特殊的strip选项的话,还是尽量不要对库文件strip,只对链接后的可执行文件strip就可以了(如果也不调试)。
python strip()函数 replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符。s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符。s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符。 阅读详情

相关推荐

DSI3协议介绍

分布式系统接口(DSI)是一种通用且功能强大的总线协议,旨在将多个遥感器和执行器设备互连到中央控制模块。该网络的主要目标应用是汽车安全系统。这种应用的一些特点是需要低成本、高鲁棒性、中速互连,仅限于两根导线。此外,它必须具有故障安全性、确定性和良好的EMC特性。即使具有所有级别的智能和可编程性的设备都可以连接到网络,远程设备也必须能够通过简单的状态机实现。由于模块尺寸非常重要,因此中央模块和远程单元中的最小组件至关重要。

汽车电子软件领域知识分享 1万+

strip

 strip经常用来去除目标文件中的一些符号表、调试符号表信息,以减小程序的大小,在rpmbuild包的最后就用到。其支持的选项如下:>strip -h用法:strip 输入文件从文件中删除符号和节 选项为:  -I --input-target=      Assume input file is in format   -O --output-target=     Create an ou

linuxliu的专栏 993

静态时序分析—set_sense

set_sense 常见用法

m0_61544122的博客 1万+

python的strip方法需要导入什么包_Python strip包_程序模块 - PyPI - Python中文网

条纹tripack和stripack fortran代码的python接口,用于在笛卡尔坐标系和球体上进行(受约束的)三角剖分。stripy是一个面向对象的包,它包括srfpack和ssrfpack的例程,用于插值(最近邻、线性和hermite立方)和求导(renka 1996a、b和1997a、b)。stripy与litho1pt0捆绑在一起,后者是地壳1.0数据集和litho 1.0数据集岩石...

weixin_39610188的博客 1896

Python strip()方法

描述 Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。 语法 strip()方法语法: str.strip([chars]); 参数 chars -- 移除字符串头尾指定的字符序列。 返回值 返回移除字符串头尾指定的字符生成的新字符串。 实例 以下实例展示了s...

chen_zan_yu_的博客 726

Linux 可执行文件瘦身指令 strip 使用示例

Linux 可执行文件瘦身指令 strip 使用示例

qq_23174771的博客 883

linux中的strip命令简介

一、stip命令学习原因             背景: 在调试一个ko模块时,应用addr2line命令 得不到行号等死机的具体位置信息,只能得到一个函数名称,"addr2line得到行号为??:?或??:0的原因"。             猜测:当时很困惑,以为编译此模块时,没有加-g调试信息,于是在makefile中加上结果调试还是不行,猜测2是因为用内核编译的模块,怀疑内核配置选

1万+

python中strip函数_python中strip()函数的理解

1、strip()函数函数原型声明:s为字符串。rm为要删除的字符序列s.strip(rm) :删除s字符串中开头、结尾处。位于 rm删除序列的字符s.lstrip(rm) :删除s字符串中开头处。位于 rm删除序列的字符s.rstrip(rm) :删除s字符串中结尾处,位于 rm删除序列的字符如今来分析s.strip(rm)这个函数。如今如果s=‘abcd’则 ...

weixin_39777488的博客 4477

Python:strip() 函数

1strip() 函数 strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。 str.strip([chars]) 参数 chars -- 移除字符串头尾指定的字符序列。 返回值 返回移除字符串头尾指定的字符生成的新字符串。 2 实例 栗子1 str = "00000003210Runoob01230000000"; print str..

weixin_40522801的博客 2万+

makefile strip函数

strip :去空格函数 $(strip string)

lyyslsw的专栏 4679

Python的strip函数

strip()是 Python 字符串(str)类型中一个极为实用的方法。它如同一个高效的剪刀,专门用于去除字符串开头和结尾的指定字符(默认为空格、换行符等)。与许多其他字符串处理方法一样,这个函数并不会改变原始字符串,而是生成一个新的、处理过的字符串。虽然 Python 的内置strip()lstrip()和rstrip()函数提供了基本的字符串去除功能,但在某些特殊情况下,我们可能需要更复杂的字符串处理逻辑。这时,我们可以考虑编写自定义的strip函数来满足需求。

Python老吕的博客 1430

python中strip函数怎么用_python中strip()函数怎么使用介绍

介绍strip这个英语单词的汉语意思是“脱掉,剥除”,从字面意思大致也可以猜出它的功能,其实现了把一组字符串根据某种规则去除一部分的功能,主要有以下几个用法:去除字符串首尾的特定字符,代码如下:str="00000003210Runoob01230000000";print(str.strip("0"))#去除首尾字符0结果为:3210Runoob0123str="123abcru...

weixin_39531183的博客 946

python中strip()函数的详解

关于python中strip()函数的用法详解与使用

weixin_47246465的博客 12万+

python中strip函数举例子_python strip()函数 介绍

python strip()函数 介绍函数原型声明:s为字符串,rm为要删除的字符序列s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符注意:1. 当rm为空时,默认删除空白符(包括'\n', ...

weixin_39621669的博客 899

python strip函数用法_python中strip函数的用法

python中往往使用剥除函数strip()来对用户的输入进行清理。strip函数的最一般形式为:str.strip('序列‘)其中,序列是一段字符串,该函数表示从头或者从尾部开始进行扫描,如果扫描的字符在序列字符串中,则剔除掉,一直到遇到一个不在序列字符串中的字符为止。延伸的函数:str.lstrip('序列'),则表示仅从头部第一个字符开始扫描,如果扫描的字符在序列字符串中,则剔除掉,直到遇到...

weixin_39597987的博客 1728

Linux命令strip详解

strip命令是Linux系统中用于去除可执行文件、共享库文件和目标文件中的符号表和调试信息的工具。通过去除这些不必要的信息,strip可以显著减小文件体积,提高程序的加载和运行速度。这对于发布版本的应用程序或库尤其有用,因为它既减小了文件大小,也增加了安全性,因为调试信息可能会暴露程序的内部实现细节。strip命令是Linux系统中一个功能强大的工具,通过去除二进制文件中的符号表和调试信息,可以显著减小文件体积,提高程序的运行效率。

听风的鱼鱼儿 3228

Python之strip()函数-掐头去尾

在 Python 中,strip 函数主要针对字符串数据,其函数功能为,默认移除空格。需要注意的是,strip 在移除字符时,。

zlwjyy123456的博客 1万+

strip()函数详细说明及使用方法

strip()函数是Python字符串方法之一,用于处理字符串的前导和尾随空白字符。它返回一个新字符串,该字符串是原始字符串去除前导和尾随空格(包括空格、制表符、换行符等)后的结果。

ThsPool的博客 1万+

linux gcc strip命令简介

strip经常用来去除目标文件中的一些符号表、调试符号表信息,以减小静态库、动态库和程序的大小。

木牛的博客 1328

用pytorch中的keypoint_rcnn训练一个自建数据集的关键点检测模型_keypoint_detection.zip

用pytorch中的keypoint_rcnn训练一个自建数据集的关键点检测模型_keypoint_detection

上一篇: 解决 Fedora 10 root 用户不能登陆的问题
下一篇: WEP、WPA无线加密对比
kingnightdream
博客等级 码龄20年 118粉丝 56原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值