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

ナビゲーションに移動 検索に移動
283行目: 283行目:
==== H8 (システムルート無し) ====
==== H8 (システムルート無し) ====
<u>※注意</u><br>
<u>※注意</u><br>
<u>GCC 8.4以降は、共有ライブラリとしてC++(libstdc++)をビルドすると失敗するため、C言語のみの対応となる。</u><br>
<u>GCC 9.1以降は、共有ライブラリとしてC++(libstdc++)をビルドすると失敗するため、C言語のみの対応となる。</u><br>
<u>スタティックライブラリとしてはビルド可能であるが、その場合、例えば、<code>#inlcude <iostream></code>のインクルードができなくなる。</u><br>
<u>スタティックライブラリとしてはビルド可能であるが、その場合、例えば、<code>#inlcude <iostream></code>のインクルードができなくなる。</u><br>
<br>
<br>
290行目: 290行目:
<u>また、C++17のメモリ管理機構において、コンパイル時の<code>static_assert</code>に失敗する。</u><br>
<u>また、C++17のメモリ管理機構において、コンパイル時の<code>static_assert</code>に失敗する。</u><br>
<br>
<br>
GCC 8.3では、GCCのMakefileに手を加えることにより、C言語およびC++言語を対応させることができる。<br>
GCC 8.5では、GCCのMakefileに手を加えることにより、C言語およびC++言語を対応させることができる。<br>
通常、ビルドを行う場合、<code>basic_string.h</code>ファイルにおいて、<code>internal compiler error: unrecognizable insn</code>としてエラーになる。<br>
通常、ビルドを行う場合、<code>basic_string.h</code>ファイルにおいて、<code>internal compiler error: unrecognizable insn</code>としてエラーになる。<br>
これは、C++向けライブラリをビルドするためのxgccにおいて、内部エラーが起きているからである。<br>
これは、C++向けライブラリをビルドするためのxgccにおいて、内部エラーが起きているからである。<br>
331行目: 331行目:
  mkdir build && cd build
  mkdir build && cd build
   
   
  # GCC 8.3
  # GCC 8.5以前
  export PATH="/<上記でインストールしたBinutilsのインストールディレクトリ>/bin:$PATH" && \
  export PATH="/<上記でインストールしたBinutilsのインストールディレクトリ>/bin:$PATH" && \
  CC=<ネイティブ向けGCCのパス> CXX=<ネイティブ向けG++のパス> \
  CC=<ネイティブ向けGCCのパス> CXX=<ネイティブ向けG++のパス> \
343行目: 343行目:
  make install
  make install
   
   
  # GCC 8.4以降
  # GCC 9.1以降
  export PATH="/<上記でインストールしたBinutilsのインストールディレクトリ>/bin:$PATH" && \
  export PATH="/<上記でインストールしたBinutilsのインストールディレクトリ>/bin:$PATH" && \
  CC=<ネイティブ向けGCCのパス> CXX=<ネイティブ向けG++のパス> \
  CC=<ネイティブ向けGCCのパス> CXX=<ネイティブ向けG++のパス> \
370行目: 370行目:
  cd <GCCのソースコードがあるディレクトリ>/build
  cd <GCCのソースコードがあるディレクトリ>/build
   
   
  # GCC 8.3は不要
  # GCC 8.5以前は不要
   
   
  # GCC 8.4以降
  # GCC 9.1以降
  export PATH="/<上記でインストールしたBinutilsのインストールディレクトリ>/bin:$PATH" && \
  export PATH="/<上記でインストールしたBinutilsのインストールディレクトリ>/bin:$PATH" && \
  CC=<ネイティブ向けGCCのパス> CXX=<ネイティブ向けG++のパス> \
  CC=<ネイティブ向けGCCのパス> CXX=<ネイティブ向けG++のパス> \

案内メニュー