转载文章--FREEBSD下使用crunch集成编译程序
2009-05-13 14:59:06来源:未知 阅读 ()
FREEBSD下使用crunch集成编译程序 作者:PKkingson 来源:cufug
鼓捣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
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/3176/showart_1210815.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 讨论一下package和port一起使用的问题。 2009-05-13
- 内核编译 修改了操作系统名称,改如何改回来? 2009-05-13
- 拓扑排序程序 2009-05-13
- (转载)FreeBSD如何搭建iPhone程序开发环境 2009-05-13
- Freebsd下程序随系统开机启动的方法 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash