关闭

移植 unzip 工具

167人阅读 评论(0) 收藏 举报
分类:
项目上要使用ZIP格式的压缩包,但是busybox自带的unzip工具不支持,移植了标准的unzip工具。
1.下载地址是:
http://sourceforge.net/projects/infozip/files/UnZip%206.x%20%28latest%29/UnZip%206.0/unzip60.tar.gz/download
2.在察看根目录下的文件,configure Makefile 文件。有一个INSTALL文件,打开:
root@wang:/work/3716C/release/tools/unzip# head INSTALL -n 40
__________________________________________________________________________

  This is the Info-ZIP file INSTALL (for UnZip), last updated 16 Apr 2009.
__________________________________________________________________________

  Yes, this is a rather long file, but don't be intimidated:  much of its
  length is due to coverage of multiple operating systems and of optional
  customization features, large portions of which may be skipped.
__________________________________________________________________________
To compile UnZip, UnZipSFX and/or fUnZip (quick-start instructions):
========================================

(1) Unpack everything into a work directory somewhere, and make sure you're
    in the main UnZip directory (the one with this file in it).
    * (See note below concerning line termination format used in the source
       distribution)

(2) Copy the appropriate makefile into the current directory, except under
    OS/2.

(3) Run your "make" utility on the makefile (e.g., "nmake -f makefile.msc").

(4) Try out your new UnZip the way you would any new utility:  read the
    docs first.

    Ah ha ha ha!!  Oh, that kills me.  But seriously...  For VMS, see the
    Install section below or [.vms]README. for details.

    For DOS and other OSes without explicit timezone support (i.e., everybody
    but Unix, Windows 95 and NT), make sure the "TZ" environment variable is
    set to a valid and reasonable value; see your compiler docs for details.

(*) The unzip sources as well as other Info-ZIP source archives are packaged
    in Unix format. All text files use single LF (Ascii 0x0a) characters as
    line terminators.  On systems that use different conventions for plain text
    files (e.g.:DOS,Win9x,WinNT,OS/2 -> combined CR+LF; MacOS -> single CR),
    some utilities (editors, compilers, etc.) may not accept source files
3. 有编译说明,就按照步骤来。
root@wang:/work/b500_hi3716/release/tools/unzip60# cd unix/
root@wang:/work/b500_hi3716/release/tools/unzip60/unix# ls
configure  Contents  Makefile  Packaging  unix.c  unxcfg.h  zipgrep

root@wang:/work/b500_hi3716/release/tools/unzip60# cp unix/Makefile  . ./
修改Makefile ,使用工具链:
# UnZip flags
CC = cc# try using "gcc" target rather than changing this (CC and LD
LD = $(CC)# must match, else "unresolved symbol:  ___main" is possible)
AS = as
LOC = $(D_USE_BZ2) $(LOCAL_UNZIP)
AF = $(LOC)
CFLAGS = -O


# UnZip flags
CC = arm-hisiv200-linux-cc# try using "gcc" target rather than changing this (CC and LD
LD = $(CC)# must match, else "unresolved symbol:  ___main" is possible)
AS = arm-hisiv200-linux-as
LOC = $(D_USE_BZ2) $(LOCAL_UNZIP)
AF = $(LOC)
CFLAGS = -O


4。编译
root@wang:/work/b500_hi3716/release/tools/unzip60# make

  If you're not sure about the characteristics of your system, try typing
  "make generic".  This is new and uses the configure script, though it is
  still being worked on.

  If that does not do it, try the original generic which is "make generic1".

  If the compiler barfs and says something unpleasant about "timezone redefined",
  try typing "make clean" followed by "make generic2".  If, on the other
  hand, it complains about an undefined symbol _ftime, try typing "make clean"
  followed by "make generic3".

  One of these actions should produce a working copy of unzip on most Unix
  systems.  If you know a bit more about the machine on which you work, you
  might try "make list" for a list of the specific systems supported herein.
  (Many of them do exactly the same thing, so don't agonize too much over
  which to pick if two or more sound equally likely.)  Also check out the
  INSTALL file for notes on compiling various targets.  As a last resort,
  feel free to read the numerous comments within the Makefile itself.

  Have a mostly pretty good day.

直接make有错误,看说明:
root@wang:/work/b500_hi3716/release/tools/unzip60# make generic
OK

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(1182) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:32731次
    • 积分:399
    • 等级:
    • 排名:千里之外
    • 原创:90篇
    • 转载:10篇
    • 译文:0篇
    • 评论:0条
    文章分类