一个openwrt编译错误的解决办法—-安装xz工具

  • Post author:
  • Post category:其他


在编译openwrt的时候遇到一个问题,如下图所示:


根据上面的描述,在truck/build_dir/host/patch-2.7.1中没有发现Makefile文件,其实进入这个目录可以发现这个目录是空的。这个目录中的文件是应该从trunk/dl/patch-2.7.1.tar.xz,

究其原因是因为系统中没有安装解压xz格式的工具(xz的安装就不在这里说明,会在其他文档中具体介绍的)。安装xz工具后可以正常编译,下面介绍xz工具的安装步骤。

XZ Utils的官网:

http://tukaani.org/xz/

下载了一个xz-5.0.1.tar.gz 的源码包。解压后如下所示:

[root@localhost setup_file]# cd xz-5.0.1
[root@localhost xz-5.0.1]# ls
ABOUT-NLS   config.h       COPYING           dos              lib          NEWS       tests
aclocal.m4  config.h.in    COPYING.GPLv2     Doxyfile         libtool      PACKAGERS  THANKS
AUTHORS     config.log     COPYING.GPLv3     Doxyfile.in      m4           po         TODO
autogen.sh  config.status  COPYING.LGPLv2.1  extra            Makefile     README     windows
build-aux   configure      debug             INSTALL          Makefile.am  src
ChangeLog   configure.ac   doc               INSTALL.generic  Makefile.in  stamp-h1

里面有一个README文档,打开后查看里面的内容:

156 
157       2. Compile XZ Utils with debugging code using configure switches
158          --enable-debug and, if possible, --disable-shared. If you are
159          using GCC, use CFLAGS='-O0 -ggdb3'. Don't strip the resulting
160          binaries.

这地方说,如果你需要编译带调试信息的代码,那么就需要在执行 ./configure 的时候带上 –enable-debug 选项。

不过一般不需要。

然后接着往下看:

166       4. Try to reproduce the suspected bug. If you get "assertion failed"
167          message, be sure to include the complete message in your bug
168          report. If the application leaves a coredump, get a backtrace
169          using gdb:
170            $ gdb /path/to/app-binary   # Load the app to the debugger.
171            (gdb) core core   # Open the coredump.
172            (gdb) bt   # Print the backtrace. Copy & paste to bug report.
173            (gdb) quit   # Quit gdb.

这个地方说,如果在make 或者 make install 的时候遇到 中断错误,那么就可以执行下面的命令来

检查出错的原因。 一般编译的时候,不会出错,这一步也能省略。

然后接着往下看:

191 4. Translating the xz tool
192 --------------------------
193 
194     The messages from the xz tool have been translated into a few
195     languages. Before starting to translate into a new language, ask
196     the author that someone else hasn't already started working on it.
197 
198     Test your translation. Testing includes comparing the translated
199     output to the original English version by running the same commands
200     in both your target locale and with LC_ALL=C. Ask someone to
201     proof-read and test the translation.
202 
203     Testing can be done e.g. by installing xz into a temporary directory:
204 
205         ./configure --disable-shared --prefix=/tmp/xz-test
206         # <Edit the .po file in the po directory.>
207         make -C po update-po
208         make install
209         bash debug/translations.bash | less
210         bash debug/translations.bash | less -S  # For --list outputs

这个地方到了正题: 编译和安装 xz 工具。

1、这里提到了一句,与 LC_ALL 区域的相关的问题,一般情况下,这个变量不需要修改,就算

不设置为 LC_ALL=C 也没有关系。一般情况下这个变量的值为空。

2、编译第一步:执行  ./configure 文件

./configure --disable-shared --prefix=/tmp/xz-test

这一句用来配置编译过程,  –disable-shared 的意思是禁止共享,

–prefix=/tmp/xz-test  表示编译后将xz安装到 /tmp/xz-test 目录下。

3、更新po文件,

make -C po update-po

这个命令的意思,没啥好解释的  -C po 指定Makefile的搜索路径, update-po 表示执行这个目标

4、编译和安装

make install

执行这个命令后,就将xz工具编译后,并安装到  /tmp/xz-test 目录下。

我就是这么做的,所以执行  /test/xz-test/bin/xz    –help 后显示如下:

[root@localhost linux-2.6.32.61]# /tmp/xz-test/bin/xz  --help
Usage: /tmp/xz-test/bin/xz [OPTION]... [FILE]...
Compress or decompress FILEs in the .xz format.

  -z, --compress      force compression
  -d, --decompress    force decompression
  -t, --test          test compressed file integrity
  -l, --list          list information about .xz files
  -k, --keep          keep (don't delete) input files
  -f, --force         force overwrite of output file and (de)compress links
  -c, --stdout        write to standard output and don't delete input files
  -0 ... -9           compression preset; default is 6; take compressor *and*
                      decompressor memory usage into account before using 7-9!
  -e, --extreme       try to improve compression ratio by using more CPU time;
                      does not affect decompressor memory requirements
  -q, --quiet         suppress warnings; specify twice to suppress errors too
  -v, --verbose       be verbose; specify twice for even more verbose
  -h, --help          display this short help and exit
  -H, --long-help     display the long help (lists also the advanced options)
  -V, --version       display the version number and exit

With no FILE, or when FILE is -, read standard input.

Report bugs to <lasse.collin@tukaani.org> (in English or Finnish).
XZ Utils home page: <http://tukaani.org/xz/>

如果你觉得麻烦,可以将路径: /tmp/xz-test/bin  添加到环境变量 PATH 中,或者临时导出一下也行。

-d:  解压缩

-z: 压缩文件

-t: 测试文件的一致性

-l: 列出文件的信息

命令如下执行:

 /tmp/xz-test/bin/xz  -d  linux-2.6.32.2.xz  

就可以解压你的xz文件了。



版权声明:本文为JIANGXIN04211原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。