13,005
回編集
283行目: | 283行目: | ||
==== H8 (システムルート無し) ==== | ==== H8 (システムルート無し) ==== | ||
<u>※注意</u><br> | <u>※注意</u><br> | ||
<u>GCC | <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. | 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. | # 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 | # 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. | # GCC 8.5以前は不要 | ||
# GCC | # GCC 9.1以降 | ||
export PATH="/<上記でインストールしたBinutilsのインストールディレクトリ>/bin:$PATH" && \ | export PATH="/<上記でインストールしたBinutilsのインストールディレクトリ>/bin:$PATH" && \ | ||
CC=<ネイティブ向けGCCのパス> CXX=<ネイティブ向けG++のパス> \ | CC=<ネイティブ向けGCCのパス> CXX=<ネイティブ向けG++のパス> \ |