プロジェクト

全般

プロフィール

操作

Cygwin の GCC 840 ビルド » 履歴 » リビジョン 2

« 前 | リビジョン 2/3 (差分) | 次 »
開発 次郎, 2026/05/16 23:19


Cygwin の GCC 840 ビルド

1.必要パッケージのインストール(Cygwin)

最小構成で初期セットアップした後、GCC をビルドするため、以下のパッケージを導入をする。

gcc-core
gcc-g++
make
binutils
libgmp-devel
libmpfr-devel
libmpc-devel
flex
bison
gawk
wget
git

2. GCC 8.4.0 のソース取得

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

3. ビルド用ディレクトリを作成

mkdir gcc-8.4.0-build
cd gcc-8.4.0-build

4. configure の実行

Cygwin で long double=80bit を使うため、特別なオプションは不要。

標準の configure で OK。

../gcc-8.4.0/configure \
  --prefix=/usr/local/gcc-8.4 \
  --enable-languages=c,c++ \
  --disable-multilib

5. make(長時間かかる)

make -j$(nproc)

Cygwin では fork が遅いので時間がかかるが、問題なし。

6. インストール

make install

インストール先:

/usr/local/gcc-8.4/

7. PATH の設定

.bashrc に追加:

export PATH=/usr/local/gcc-8.4/bin:$PATH

反映:

. ~/.bashrc

8. 動作確認(最重要:long double の精度)

テストコード作成

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

コンパイル & 実行

/usr/local/gcc-8.4/bin/gcc /tmp/check_ld.c -o /tmp/check_ld
/tmp/check_ld

結果(成功)

sizeof(long double) = 16
LDBL_MANT_DIG       = 64
→ 80bit 拡張倍精度(x87 FPU)が正しく動作

9. C++ の動作確認

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

出力:

1

→ libstdc++ も正常。

10. Windows Terminal で Cygwin を快適に使用

Windows Terminal に Cygwin プロファイルを作成

TERM=xterm-256color を設定

vi(Vim)のカラー表示が復活

日本語フォントも綺麗に表示

11. VSCode との統合準備

VSCode のターミナルを Cygwin bash に統一

CMake Tools / CMake 拡張をインストール

CMakePresets.json を使う構成に移行

toolchain ファイルで Windows パス を使うよう修正
(VSCode の cmake は Windows ネイティブのため)

開発 次郎 さんが3日前に更新 · 3件の履歴