![ct-ng ビルドでエラー 404 の問題を解決するにはどうすればよいですか?](https://rvso.com/image/1552381/ct-ng%20%E3%83%93%E3%83%AB%E3%83%89%E3%81%A7%E3%82%A8%E3%83%A9%E3%83%BC%20404%20%E3%81%AE%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
YaST 経由で openSuSE 42.2 用の crosstool-ng を入手しました (バージョン 1.21.0-4.22)。crosstool 自体のインストールは正常に機能しましたが、を使用してクロスコンパイラをビルドしようとするとct-ng build
、次のエラー メッセージが表示されます。
[ALL ] --2018-02-01 21:36:27-- https://cbuild.validation.linaro.org/snapshots/binutils-linaro-2.25.0-2015.01-2
[ALL ] Connecting to cbuild.validation.linaro.org (cbuild.validation.linaro.org)|51.148.40.7|:443... connected.
[ALL ] HTTP request sent, awaiting response... 404 Not Found
[ALL ] 2018-02-01 21:36:27 ERROR 404: Not Found.
[ALL ]
[DEBUG] Not at this location: "http://cbuild.validation.linaro.org/snapshots/binutils-linaro-2.25.0-2015.01-2"
[ERROR]
[ERROR] >>
[ERROR] >> Build failed in step 'Retrieving needed toolchain components' tarballs'
[ERROR] >> called in step '(top-level)'
[ERROR] >>
[ERROR] >> Error happened in: do_binutils_get[scripts/build/binutils/binutils.sh@741]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@584]
[ERROR] >>
[ERROR] >> For more info on this error, look at the file: 'build.log'
[ERROR] >> There is a list of known issues, some with workarounds, in:
[ERROR] >> '/usr/share/doc/packages/crosstool-ng/ct-ng.1.21.0/B - Known issues.txt'
問題は、Linaro の Web サーバーのコンテンツに影響を与えることができないことです。この問題を回避する回避策はありますか?
答え1
ct-ng 1.21 を使用していますが、これは非常に古いバージョン (2015 年 5 月 25 日) なので、リンクが壊れる可能性があります。
私は ct-ng でクロスコンパイルを頻繁に行い、多くの x-libs をビルドします。ただし、ct-ng はソースからビルドします。また、HEAD や MASTER は使用しません。代わりに最新のタグを試し、失敗した場合は古いタグを選択するなどして、機能するタグが見つかるまで続けます。現在、私にとって機能しているのは「tags/crosstool-ng-1.23.0」です。
mkdir -p $HOME/_dev/_build
cd $HOME/_dev/_build
git clone https://github.com/crosstool-ng/crosstool-ng
cd crosstool-ng
# check out an older state, but they are not always error-free
#git checkout master # can have errors
git tag -l # list tags
git checkout tags/crosstool-ng-1.23.0 # choose last tag that works for you
./bootstrap
mkdir -p $HOME/_dev/_bin/ct-ng
./configure --prefix=$HOME/_dev/_bin/ct-ng
make
make install
export PATH="$PATH:$HOME/_dev/_bin/ct-ng/bin" # if you want to use ct-ng in current shell
cd $HOME
rm -rf $HOME/_dev/_build
答え2
OK、私は自分で問題を解決することができました。Linaro コンパイラ オプションのチェックを外して、プレーンな gcc に頼らなければなりませんでした。さらに、config ツールはすべてを という名前のファイルに保存します.config
が、.config という名前のディレクトリがすでに存在するため、ホーム ディレクトリから config およびビルド プロセスを開始できませんでした。