「インストール - GCC」の版間の差分

ナビゲーションに移動 検索に移動
455行目: 455行目:
  make -j $(nproc)
  make -j $(nproc)
  make install-strip
  make install-strip
<br>
==== Risc-V 64bit (システムルートあり) ====
まず、[https://ftp.gnu.org/gnu/binutils/ GNUの公式Webサイト]から、Binutilsをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
tar xf binutils-<バージョン>.tar.xz
cd binutils-<バージョン>
<br>
ビルドディレクトリを作成する。<br>
mkdir build && cd build
<br>
クロスコンパイラ向けBinutilsのビルドおよびインストールする。<br>
<u>インストールディレクトリは、クロスコンパイラ向けGCCのインストールディレクトリと同じディレクトリであることに注意する。</u><br>
../configure --prefix=<クロスコンパイラ向けGCCのインストールディレクトリ>
              --build=x86_64-pc-linux-gnu        \
              --host=x86_64-pc-linux-gnu        \
              --target=riscv64-unknown-linux-gnu \
              --disable-nls                      \
              --disable-werror                  \
              --with-sysroot=<ターゲットのシステムルートディレクトリ>
make -j $(nproc)
make install
<br>
次に、[https://gcc.gnu.org GCCの公式Webサイト]にアクセスして、GCCのソースコードをダウンロードして解凍する。<br>
または、以下のコマンドを実行してダウンロードする。<br>
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-<バージョン>/gcc-<バージョン>.tar.xz
tar xf gcc-<バージョン>.tar.xz
cd gcc-<バージョン>
<br>
export PATH="/<上記でインストールしたBinutilsのインストールディレクトリ>/bin:$PATH"
../configure --prefix=<クロスコンパイラ向けGCCのインストールディレクトリ> \
              --build=x86_64-pc-linux-gnu        \
              --host=x86_64-pc-linux-gnu        \
              --target=riscv64-unknown-linux-gnu \
              --enable-languages=c,c++          \
              --disable-multilib                \
              --disable-nls                      \
              --with-sysroot=<ターゲットのシステムルートディレクトリ>
make -j $(nproc)
make install-strip
<br>
==== Risc-V 64bit (Newlibを使用する場合) ====
まず、[https://ftp.gnu.org/gnu/binutils/ GNUの公式Webサイト]から、Binutilsをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
tar xf binutils-<バージョン>.tar.xz
cd binutils-<バージョン>
<br>
ビルドディレクトリを作成する。<br>
mkdir build && cd build
<br>
クロスコンパイラ向けBinutilsのビルドおよびインストールする。<br>
<u>インストールディレクトリは、クロスコンパイラ向けGCCのインストールディレクトリと同じディレクトリであることに注意する。</u><br>
../configure --prefix=<クロスコンパイラ向けGCCのインストールディレクトリ>
              --build=x86_64-pc-linux-gnu  \
              --host=x86_64-pc-linux-gnu  \
              --target=riscv64-unknown-elf \
              --disable-nls                \
              --disable-werror
make -j $(nproc)
make install
<br>
<u>次に、GCCの初期ビルドを行う。</u><br>
[https://gcc.gnu.org GCCの公式Webサイト]にアクセスして、GCCのソースコードをダウンロードして解凍する。<br>
または、以下のコマンドを実行してダウンロードする。<br>
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-<バージョン>/gcc-<バージョン>.tar.xz
tar xf gcc-<バージョン>.tar.xz
cd gcc-<バージョン>
<br>
export PATH="/<上記でインストールしたBinutilsのインストールディレクトリ>/bin:$PATH"
../configure --prefix=<クロスコンパイラ向けGCCのインストールディレクトリ> \
              --build=x86_64-pc-linux-gnu  \
              --host=x86_64-pc-linux-gnu  \
              --target=riscv64-unknown-elf \
              --enable-languages=c        \  # まず、最小限のGCCコンパイラを生成する
                                              # このコンパイラはC言語のみをサポートし、標準ライブラリなしで動作可能
              --disable-multilib          \
              --disable-nls                \
              --without-headers            \  # ターゲットのシステムヘッダを使用せずにビルド
              --with-newlib                  # 組み込みシステム向けのC標準ライブラリNewlibを使用
#  GCCの一部のみをビルドおよびインストール
make all-gcc -j $(nproc)
make install-gcc
<br>
NewLibを使用する場合、NewLibのソースコードが必要になる。<br>
<br>
NewLibとは、組み込みシステムやベアメタル環境向けの軽量なC標準ライブラリ実装である。<br>
GCCと一緒に使用することにより、完全なクロスコンパイル環境を構築できる。<br>
<br>
NewLibを使用する理由は以下の通りである。<br>
* 軽量
*: 組み込みシステムや制限のあるハードウェア向けに最適化されている。
* 移植性
*: 多くのアーキテクチャをサポートしている。
* カスタマイズ性
*: 特定のターゲット向けに容易にカスタマイズできる。
<br>
mkdir build && cd build
../configure --prefix=<クロスコンパイラ向けGCCのインストールディレクトリ> \
              --target=riscv64-unknown-elf
make -j $(nproc)
make install
<br>
<u>GCCの最終ビルドを行う。</u><br>
export PATH="/<上記でインストールしたBinutilsのインストールディレクトリ>/bin:$PATH"
../configure --prefix=<クロスコンパイラ向けGCCのインストールディレクトリ> \
              --build=x86_64-pc-linux-gnu  \
              --host=x86_64-pc-linux-gnu  \
              --target=riscv64-unknown-elf \
              --enable-languages=c,c++    \  # 完全な機能を持つGCC (最終ビルド) を生成
              --disable-multilib          \
              --disable-nls                \
              --without-headers            \  # ターゲットのシステムヘッダを使用せずにビルド
              --with-newlib                \  # 組み込みシステム向けのC標準ライブラリNewlibを使用
              --with-sysroot=/<Newlibのインストールディレクトリ>/riscv64-unknown-elf  # Newlibのヘッダファイルとライブラリの場所を指定
make all -j $(nproc)
make install
<br>
<br>


案内メニュー