操作
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 ネイティブのため)