• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

如何使用Crunch集成编译程序

发布: 2007-6-21 12:06 | 作者:   | 来源:   | 查看: 14次 | 进入软件测试论坛讨论

领测软件测试网

   
  鼓捣linux的朋友都知道,linux下有一个叫busybox的项目,它把大多数unix的基本命令都集成编译成一个单独的程序。 FREEBSD也有一种机制,叫做crunch.它允许我们不用加载标准库也可以利用其它程序中的相同函数。

crunch使用一个平板的文本文件来定制集成的程序、编译选项以及需要的LIBS。下面是我在freebsd4.9RELEASE上,集成编译 /bin和/sbin下常用程序的一个配置文件,这些文件如果静态编译,大约占用16M左右的空间.

  # cat tinyware.conf
  #crunch配置文件最常见的指令有buildopts(编译选项)、srcdirs(指定代码路径)
  #progs(指定要集成的程序)、ln(创建指向一个程序的连接)、libs(指定需要的库)
  #其他指令和crunch的细节请参看 man crunchgen和crunchide
  #指定编译时不包含ipsec、ipv6、和crypt
  buildopts -DRELEASE_CRUNCH -DNOIPSEC -DNOINET6 -DNOCRYPT
  #指定程序需要的代码路径


  srcdirs /usr/src/bin
  srcdirs /usr/src/sbin
  srcdirs /usr/src/secure/lib


  #/bin下的常见程序


  progs cat chio chmod cp csh date dd df domainname echo
  progs expr hostname kill ln ls mkdir mv ps pwd rm sh rmdir
  progs sleep stty sync test ed


  创建一个指向test的连接
  ln test [


  #/sbin下的常见程序


  progs adjkerntz dmesg disklabel fsck ifconfig init
  progs ipf ipfs ipfstat ipfw ipmon ipnat natd
  progs kldconfig kldload kldstat kldunload ldconfig md5 mknod
  progs mount mount_null mount_union newfs mount_std umount
  ln mount_std mount_procfs
  ln newfs mount_mfs
  progs ping reboot restore route routed shutdown sysctl


  指定这些程序需要的库,想知道这些程序都需要什么库,你可以使用这样的命令:
  grep -ir LDADD /usr/src/bin/*


  这样就能抽取出包含在Makefile中的指定库的行
  libs -ltermcap -lcrypt -lutil -lm -lcipher -lkvm -ll -ledit
  libs -lcrypto -lipx -lncurses -lmd -lalias -lipsec


  写完配置文件后,就可以使用crunchgen来生成Makefile和代码了。
  # crunchgen -m Makefile tinyware.conf


  然后你可以这样编译它:
  # make -f Makefile


  如果没什么错误,应该就可以生成tinyware的可执行程序,如果出错,请重新检查是否没写全libs和srcdirs

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网