2015-07-05 42 views
0

的Ubuntu 14.04最新版本的焦油是1.27.1:解決方法爲焦油1.27的在Ubuntu 14.04錯誤

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的焦油功能(http://lists.openembedded.org/pipermail/openembedded-core/2013-October/085105.html)。另外我從GNU網站下載焦油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時,沒有任何人有任何解決方法嗎?

+0

另一個例子: https://lists.yoctoproject.org/pipermail/yocto/2013-October/016540.html –

+1

你在問什麼?你沒有問過任何問題嗎?此外,你缺少很多信息。你使用什麼版本?在當前支持的版本中,這應該已經被修補。如果某個受支持版本中缺少修復程序,那麼需要修復這些修復程序。 – Anders

+0

對不起,我認爲這是足夠明確的 - 我所引用的所有鏈接都沒有任何答案,而我只是這些問題中的又一個問題。 –

回答

0

最後我解決了這個問題。這不是tar 1.27.1的錯誤,只是它破壞了許多使用舊的tar功能的現有系統。

我從GNU取了1.26版本的tar,在stdio.h的第479行中註釋了創建錯誤的註釋,並生成了一個忽略gets()警告的新tar。不是一個長期的解決方案,但現在至少我可以成功編譯Yocto。

+1

是的,不是解決方案,而是臨時解決方法。你使用的是什麼版本的yocto?就像我上面所說的那樣,支持的版本應該很長時間才能修復。如果您需要使用較舊的版本,則應該相對容易地選擇(並修復合併衝突)使其使用新的tar版本工作所需的兩個修補程序。 – Anders

+0

不是真的,整個Yocto作爲供應商自己的特別下載:http://rocketboards.org/foswiki/view/Documentation/AlteraSoCDevelopmentBoardYoctoGettingStarted 和修補tar然後修補Yocto本身是很明智的,這是很多更復雜並且可能具有其他依賴性。 –

+0

每個人都有自己的...我不一定要分享這個意見,但只要它適合你。 – Anders