GNU/Linux >> Linux の 問題 >  >> Linux

GCC をインストールするための十分なスペースがない場合、Linux 用に何かをコンパイルするにはどうすればよいですか?

通常、組み込みデバイスの場合、ソフトウェアを直接コンパイルすることはありません。 cross-compilation と呼ばれるものを実行する方が快適です つまり、通常の PC を使用して x86 以外のアーキテクチャにコンパイルすることです。

Linux は初めてだとおっしゃいました。参考までに、あなたは大きな問題に直面しています:組み込みデバイスへのクロスコンパイルは簡単な仕事ではありません.

あなたの HMI システムを調査したところ、Yocto に関する結果がいくつかあることに気付きました。Yocto つまり、組み込みデバイス用のファームウェアを構築するためのフレームワーク全体です。

HMI はオープン ソース プロジェクト (Linux、おそらく busybox など) を大量に使用しているため、メーカーはする必要があります。 すべてのオープン ソース コンポーネントを自分で再構築する方法を提供します。通常、それを行う必要があるのは BSP (ボード サポート パッケージ)。通常、ハードウェア メーカーが出荷します:

  • buildroot の使用 ファームウェア全体をゼロから再構築できるプロジェクト
  • yocto の使用 対応する yocto プロジェクトの新しいコピーに追加されたメタを使用すると、ファームウェア全体を再構築することもできます。
  • まれに、たくさんのくだらないスクリプトとビルド済みのコンパイラ。

だから、もし私があなただったら:

<オール>
  • 製造元のサポートに連絡して、オープン ソースの使用が示唆するように、ファームウェアを再構築するためのものを依頼してください。
  • 並行して、Google で「your HMI + yocto」、「your HMI + buildroot」などを検索します。
  • さらにググってみると、github で Yocto メタを見つけました。

    このメタによって実装されたマシンは、メタのディレクトリ conf/machine で確認できます。

    現在、次のコードネームで定義されている 5 つのマシンがあります:

    • us01-kit
    • us02-kit
    • us03-kit
    • usom01
    • usom02

    ですから、これを掘り下げることをお勧めします。これはおそらく、自分でソフトウェアを構築する方法です。また、github アカウントのこのページを確認すると、さらに手がかりが得られる場合があります。


    クロスコンパイルに関するbinarymの回答に同意します。ただし、このような保守的なハードウェアを備えたマシンで直接コンパイルしたい場合は、x86 アーキテクチャで約 100KB を占める Tiny C Compiler (tcc) などの小さなコンパイラを検討することをお勧めします。ただし、C11 ではなく、ISO C99 までしかサポートを拡張していないことを指摘しておきます。


    Linux
    1. Linux –緊急時にのみスワップスペースを使用する方法は?

    2. Linux上のOracle Databaseに追加するスワップ領域の量

    3. Linux でスワップ領域を追加する方法

    1. Linux で GCC のデフォルトのインクルード パスを追加するには?

    2. gcc/cmake を使用して 64 ビット Linux マシンで 32 ビット バイナリをコンパイルする方法

    3. Linux でディレクトリの空きディスク領域をプログラムで取得する方法

    1. LinuxでJNIアプリケーションの動的ライブラリをコンパイルするには?

    2. Linux でアドレス空間の領域の CPU キャッシュをフラッシュする方法は?

    3. Linux で Windows Visual C++ コードをコンパイルする方法