binutils中strings.exe的生成

 

快乐虾

http://blog.csdn.net/lights_joy/

lights@hb165.com

 

 

本文适用于

binutils-2.18

configure –target=bfin-uclinux-gnu

Blackfin系列DSP

Cygwin gcc 3.4.4

   

欢迎转载,但请保留作者信息

 

1.1    strings$(EXEEXT)

这条规则定义为:

strings$(EXEEXT): $(strings_OBJECTS) $(strings_DEPENDENCIES)

       @rm -f strings$(EXEEXT)

       $(LINK) $(strings_LDFLAGS) $(strings_OBJECTS) $(strings_LDADD) $(LIBS)

在目标生成后将它们链接为strings.exe

1.1.1   $(strings_OBJECTS)

这个变量定义为:

am_strings_OBJECTS = strings.$(OBJEXT) $(am__objects_1)

strings_OBJECTS = $(am_strings_OBJECTS)

am__objects_1 = bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT)

其中am__objects_1已经生成,故这个目标只剩下strings.o。它由通用规则生成:

.c.o:

       $(COMPILE) -c $<

且有以下依赖关系:

strings.o: strings.c sysdep.h $(INCDIR)/ansidecl.h /

  ../bfd/bfdver.h config.h $(INCDIR)/fopen-same.h ../bfd/bfd.h /

  $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h /

  $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h bucomm.h

没什么,直接编译即可。

 

1.1.2   $(strings_DEPENDENCIES)

这个变量定义为:

strings_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)

LIBINTL_DEP =

LIBIBERTY = ../libiberty/libiberty.a

BFDLIB = ../bfd/libbfd.la

所需要的目标均已生成,略过。

 

 

参考资料

binutils-2.18/libiberty/Makefile分析 2008-8-27

binutils-2.18/bfd/Makefile分析( 2008-8-28 )

binutils-2.18/opcodes/Makefile分析( 2008-8-29 )

binutilssize.exe的生成( 2008-8-29 )

binutilsobjdump.exe的生成( 2008-8-29 )

binutilsar.exe的生成( 2008-8-29 )

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
strings.com 是强大的纯DOS环境 下的文本处理工具 STRINGS常用方法: 1、把文本文件 LIST.TXT 包含的行数赋值给变量 LN STRINGS LN=LINESIZE LIST.TXT 2、把文本文件 LIST.TXT 的大小传递给变量FS STRINGS FS=FILESIZE LIST.TXT 3、读取文本文件 LIST.TXT 的第5行内容并赋值给变31333137量 LN STRINGS LN=READ LIST.TXT,5 4、把变量 N 在原有基础上+1 和 -1 STRINGS N=ADD %N%,1 STRINGS N=SUB %N%,1 5、把字符串 ABCDEFG 第四个字符以及后面共3个字符传递给变量 LX (DEF) STRINGS LX=MID ABCDEFG,4,3 6、查找字符串 ABCDEFG D所在的位置并赋值给变量DX,如果没找到DX=0 STRINGS DX=FIND ABCDEFG,D 7、找出字符串 ABCD EFG HIJ KLMN 第二个单词并赋值给变量L2 STRINGS L2=PARSE ABCD EFG HIJ KLMN ,2 应用举例:逐一显示文件 LIST.TXT 各行内容 @ECHO OFF REM 读取LIST.TXT大小如果是0就转入 ERROR段 STRINGS FS=FILESIZE LIST.TXT IF %FS%*==0* GOTO ERROR REM 读取 LIST.TXT 行数 并用N作计数器以循环方式显示 LIST.TXT各行内容。 STRINGS L=LINESIZE LIST.TXT STRINGS L=ADD %L%,1 SET N=0 :LOOP STRINGS N=ADD %N%,1 STRINGS LX=READ LIST.TXT,%N% ECHO %LX% IF %N%*==%L%* GOTO END GOTO LOOP :ERROR ECHO LIST.TXT IS NULL :END SET FS= SET L= SET N= SET LX= --------------------------------------------- NSET 的常用方法: 1、把某一命令的执行结果传递给变量。 A.把 DIR 命令执行结果第7行的第2个单词传递给变量 DIRX DIR /A /S |NSET /L7 DIRX=$2 B.把当前路径传递给变量 CDX CD |NSET CDX=$0 2、获取 LIST.TXT 文件第5行第2个单词的内容并赋值给变量 L52 NSET /L5 L52=$2 <LIST.TXT 举例:显示出 LIST.TXT 文件第二个单词是 SYSTEM 的行的内容。 @ECHO OFF REM 读取LIST.TXT大小如果是0就转入 ERROR段 STRINGS FS=FILESIZE LIST.TXT IF %FS%*==0* GOTO ERROR REM 读取 LIST.TXT 行数 并用N作计数器以循环方式显示 LIST.TXT第二个单词是 REM SYSTEM 的行的内容,每找到一个符合条件的行,就把变量M在原有基础上+1。 STRINGS L=LINESIZE LIST.TXT STRINGS L=ADD %L%,1 SET N=0 SET M=0 :LOOP STRINGS N=ADD %N%,1 STRINGS LX=READ LIST.TXT,%N% REM STRINGS LX2=PARSE %LX%,2 NSET /L%N% LX2=$2 diskn.txt REM 如果存在DISKN2.TXT 就删除之 if exist diskn2.txt del diskn2.txt >nul REM 获取DISKN.TXT文件行数并用N做计数器逐行判断,并把需要的信息传递给DISKN2.TXT REM 如果该行前两个字符是 NO 说明没有硬盘,就退出脚本 RE

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌云阁主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值