記録/経験をコンパイルUboot /教訓します

記録/経験をコンパイルUboot /教訓します

  • 自分自身だけがubootをコンパイルしようとしているが、エラーのすべての種類がたくさんあった原理の理解における最近の研究のuboot移植関連の知識の成功、最後に変更され、数回のシステム環境の後

ソースコードとクロスコンパイラツールチェーンを準備1。

環境:ubuntu19.04仮想マシン

  • まず、抽出にタールあるxvコマンドを使用して、Linuxのコミューンからバージョン2013.01 uboot(バージョン番号など、時間の最初からuboot年)をダウンロード

注:Doがない窓がないシンボリックリンクを行うためのウィンドウが、共有フォルダ上のフォルダの後にファイル解凍し、コンパイルが失敗した場合、あなたは、仮想マシンのフォルダにコピーする必要があります。

そして私は、フォルダのコピー中に次のエラーが発生したここにいます:

解決策は、コピーした後、直接アーカイブをコピーして、ディレクトリに解凍することです


  • システムが持っているのgccクロスコンパイラ、私は5.4.0のバージョンを使用するには、以下のリンクからダウンロードすることができます

リンク:https://pan.baidu.com/s/1BBxt1RUhwJEA78axBf5jqA
抽出コード:ra23

ダウンロード後、解凍されたファイルで解凍binディレクトリをPATH環境変数に追加されます。

export PATH=<bin的绝对路径>:$PATH

(かぎ括弧なしで)
もちろん、我々は再びコマンドを再入力する必要が後に起動するためには、〜/ .bashrcの内側にこの文を追加する必要があります

2. [設定の編集

  • 設定可能なアーキテクチャとコンパイラ

ubootエキスにディレクトリにsudoのvi Makefileを入力した後
、以下に内部の初めに

ARCH=arm
CROSS_COMPILE=<bin的绝对路径>/linux-none-linux-gnueabi-

(角括弧なし)

我々はすでにPATHのクロスコンパイラに追加されているが、それはここでは、絶対パスでない場合、まだ原因コンパイラを見つけることができませんでしたので、より多くの保険への絶対パスを追加していてもすることを注意

  • Mini2440コンパイルされたオブジェクトプログラム

構成に関するmini2440を持ってここでuboot、それが直接ubootディレクトリで入力し、コンパイルすることができます。

sudo make mini2440


難し/エラー

  • 私ubuntu19.04の初めには、次のエラーメッセージを表示します

网上资料表明是64位机器与32位不兼容,需要apt安装32位有关的库libgl1-mesa-dri:i386
但我的ubuntu安装了后并未改善

  • 之后我决定换32位系统————希望根治不兼容问题

于是安装了ubuntu16.04.6的i386版本虚拟机
重新做了一遍以上步骤之后,报错如下:

而且这两次都与offsets有关:

  • 从报错来看,编译器出问题不是很可能,应该就是系统环境所造成的库的缺失,但是按照网上的办法安装了库也没有用,于是我想用我另外一个ubuntu16的系统来代替虚拟机试一试

  • 不过在这之前我想到了windows自带的WSL,我的是ubuntu18.04LTS,于是顺便拿它试了一下

没想到目标文件被成功编译了出来

总结

  • 我将去查阅更多资料来寻找在这里wsl能够不出错的原因,从之前的报错提示来看,原因应该和库文件有关,至于兼容问题,可能不是主要

  • 撇开原因不谈,这次的问题的出错与解决给出了一个经验:多去尝试不同的解决方案而不是快速地否决自己的想法,这样才能有利于挖掘出工作时潜在的注意事项

おすすめ

転載: www.cnblogs.com/int-me-X/p/12524274.html
おすすめ