post by tommy @ 28 元月, 2013 10:12
一直以來, 都是使用 tdm-gcc 來編譯 win32 或 win64 的程式 (當然, 還是有很多是用 Microsoft 的 Visual Studio 來處理). 不久前, 因為某些 function 在 tdm-gcc 的 4.7.2 所附的 win32/64 sdk 中, 並沒有被納入 (看了一下 mingw64 的 changelog, 是剛被加上沒多久), 所以就自己試著更新 mingw64 runtime, 結果... 越弄越多, 最後.... 就整個都自己編譯出來了.在 Google Code 中開了一個 twu2gcc 這個 project, 把我自己弄出來的東西放上去, 如果有人想不開要試用的, 就自己上去抓回去用吧.
原則上, 與 tdm-gcc 的差異並不大, 與 tdm-gcc 不同的地方應該有:
- 包含 Ada compile.
- 使用支援 posix thread 的 winpthreads (在 mingw-w64 的 svn 裡可以抓, 參考 mingwbuilds 加進來的)
- 除了 win32 thread mode 的版本外, 也有 posix thread mode 的版本 (因為上頭的 winpthreads 有支援).
- mingw64 runtime 更新到 rev5543.
- 更新 gmp 5.1.0
- 更新 cloog 0.18.0
- 更新 ppl 1.0
- 加上 boehm-gc 在 win64 的支援 (可能吧, 編譯可以過, 不知實際使用會不會有問題)
- ... 忘了還有什麼了, 反正自己看看 patch 與 tdm-gcc 有什麼差別吧.
至於 build 的環境, 可以用 msys (對於 gcc 的編譯, 如果有用 -j 的話, 會有 freeze 的情形, 這應該是 msys 本身的問題) 或 cygwin (我自己現在都是用這個).
build 的 script 或 patch 可以在 Google Code 中抓到, 原則上也與 tdm-gcc 差不多, 應該只有對 libstdc++ 與 fixincludes 的部份有修正, 以避免重複編譯的問題.