プロジェクト

全般

プロフィール

操作

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

リビジョン 1/3 | 次 »
開発 次郎, 2026/05/16 23:11


Cygwin の GCC 840 ビルド

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

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

```text
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 に追加:

bash
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
✔ コンパイル x%x
実行
コード
/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件の履歴