Linux / 其它积累 · 2023年8月9日

解决了Ubuntu 14.04中tar 1.27的错误

Ubuntu 14.04最新的tar版本是1.27.1:

tar –version

tar (GNU tar) 1.27.1

但编译Yocto(由Altera提供:http//download.altera.com/akdlm/software/acdsinst/13.0/156/ib_installers/linux-socfpga-13.02-RC10-src.bsx,以及此处给出的说明: http: //rocketboards.org/foswiki/view/Documentation/AlteraSoCDevelopmentBoardYoctoGettingStarted)一直在给出这个错误:

| tar: –same-order option cannot be used with -c

| Try ‘tar –help’ or ‘tar –usage’ for more information.

归因于1.27的tar功能(http://lists.openembedded.org/pipermail/openembedded-core/2013-October/085105.html)。或者我从GNU网站下载tar 1.26并编译给出以下错误:

  CC     argp-eexst.o

In file included from argp.h:24:0,

                 from argp-eexst.c:27:

./stdio.h:479:1: error: ‘gets’ undeclared here (not in a function)

 _GL_WARN_ON_USE (gets, “gets is a security hole – use fgets instead”);

 ^

在最新修补的Ubuntu 14.04中编译Yocto时,有没有人有任何解决方法?

最后我克服了这个问题。这不是tar 1.27.1的错误,只是它破坏了许多使用旧tar功能的现有系统。

我从GNU中获取了1.26版本的tar,在stdio.h中的第479行注释掉了创建错误的注释,并生成了一个忽略gets()警告的新tar。不是长期解决方案,但现在至少我可以成功编译Yocto。

打赏作者