Cygwin の GCC 840 ビルド » 履歴 » リビジョン 2
リビジョン 1 (開発 次郎, 2026/05/16 23:11) → リビジョン 2/3 (開発 次郎, 2026/05/16 23:19)
h1. Cygwin の GCC 840 ビルド h2. 1.必要パッケージのインストール(Cygwin) 必要パッケージのインストール(Cygwin) 最小構成で初期セットアップした後、GCC をビルドするため、以下のパッケージを導入をする。 <pre><code class="text"> ```text gcc-core gcc-g++ make binutils libgmp-devel libmpfr-devel libmpc-devel flex bison gawk wget git </code></pre> ``` h2. 2. GCC 8.4.0 のソース取得 <pre><code class="bash"> コード wget https://ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.xz tar xf gcc-8.4.0.tar.xz </code></pre> h2. 3. ビルド用ディレクトリを作成 <pre><code class="bash"> コード mkdir gcc-8.4.0-build cd gcc-8.4.0-build </code></pre> h2. 4. configure の実行 <pre><code class="bash"> Cygwin で long double=80bit を使うため、特別なオプションは不要。 </code></pre> 標準の configure で OK。 <pre><code class="bash"> コード ../gcc-8.4.0/configure \ --prefix=/usr/local/gcc-8.4 \ --enable-languages=c,c++ \ --disable-multilib </code></pre> h2. 5. make(長時間かかる) <pre><code class="bash"> コード make -j$(nproc) </code></pre> Cygwin では fork が遅いので時間がかかるが、問題なし。 h2. 6. インストール <pre><code class="bash"> コード make install </code></pre> インストール先: <pre><code class="text"> コード /usr/local/gcc-8.4/ </code></pre> h2. 7. PATH の設定 .bashrc に追加: <pre><code class="bash"> bash export PATH=/usr/local/gcc-8.4/bin:$PATH </code></pre> 反映: <pre><code class="bash"> コード . ~/.bashrc </code></pre> h2. 8. 動作確認(最重要:long double の精度) h3. ✔ テストコード作成 <pre><code class="bash"> コード cat > /tmp/check_ld.c << 'EOF' #include <stdio.h> #include <float.h> int main(void) { printf("sizeof(long double) = %zu\n", sizeof(long double)); printf("LDBL_MANT_DIG = %d\n", LDBL_MANT_DIG); return 0; } EOF </code></pre> h2. ✔ コンパイル & 実行 <pre><code class="bash"> コード /usr/local/gcc-8.4/bin/gcc /tmp/check_ld.c -o /tmp/check_ld /tmp/check_ld </code></pre> h2. ✔ 結果(成功) <pre><code class="text"> コード sizeof(long double) = 16 LDBL_MANT_DIG = 64 → 80bit 拡張倍精度(x87 FPU)が正しく動作 </code></pre> h2. 9. C++ の動作確認 <pre><code class="bash"> コード echo '#include <iostream> int main(){ long double x=1.0L; std::cout<<x<<"\n"; }' > /tmp/test.cpp /usr/local/gcc-8.4/bin/g++ /tmp/test.cpp -o /tmp/test /tmp/test </code></pre> 出力: <pre><code class="text"> コード 1 </code></pre> → libstdc++ も正常。 h2. 10. Windows Terminal で Cygwin を快適に使用 Windows Terminal に Cygwin プロファイルを作成 TERM=xterm-256color を設定 vi(Vim)のカラー表示が復活 日本語フォントも綺麗に表示 h2. 11. VSCode との統合準備 VSCode のターミナルを Cygwin bash に統一 CMake Tools / CMake 拡張をインストール CMakePresets.json を使う構成に移行 toolchain ファイルで Windows パス を使うよう修正 (VSCode の cmake は Windows ネイティブのため)