MinGW and boost on windows |
2010/10/13 ~ 阿亮 ~ |
安裝 MinGW and Boost 於 Windows 上之筆記
一、安裝 MinGW.
下載 MinGW-get installer, 將下載的目錄 (比如 mingw-get-0.1-mingw32-alpha-4-bin/),拷貝到 C: 並改名為 C:\\MinGW,環境變數 PATH 加上 C:\MinGW\bin\,並到該目錄下執行
bin\mingw-get.exe install gcc g++ mingw32-make gdb
這個步驟是下載套件並安裝,我遇到會有 FAIL 的訊息,所以,多執行幾次,到沒有 Error 訊息。(PS: 這點蠻怪的)
C:\MinGW\bin\mingw32-make 拷貝一份改成 C:\MinGW\bin\make
2010.10 註:另一個不錯的 TDM-MinGW 的版本,有提供 64/32bits 的版本。真的比官方的正常多了 XD
二、安裝 Boost,下載並目錄解壓縮至
C:\boost_1_44_0
執行下述
bjam --with-thread --with-graph link=static link=shared threading=single threading=multi toolset=gcc address-model=32 stage
–with-<package> 是除了基本 boost 之外,看要額外裝什麼。
address-model=32/64 在 64 bits 環境下,要編繹成 32 bits,用此參數
stage 是最後產生 library 的目錄
PS: Boost 用 MinGW with gcc4.6 會有問題,用 MinGW with gcc3.4 是 OK 的。
PS: 用 TDM-MinGW with gcc4.5.1 OK.
三、用 boost::thread 會遇到這兩個問題。問題一 及問題二 。 (for boost_1_44_0)
2010.10.18 補。用 TDM-MingGW 編繹 boost 仍有很多問題,比如 boost:thread with 64bits.
2010.10.19 補。不論 mingw, tdm-mingw 都會造成我一些程式當掉,改用 cygwin 似乎就沒有該問題… (不解!)
For MSVC:
error C2143: syntax error : missing ';' before 'string'
檔頭的 class XXX {};
最後分號不能漏掉!
error C2601: 'xxx' : local function definitions are illegal
將該檔另存 UTF8 with signature, 而且 Line ending 選 Windows (CR LF)
PS: stupid? but work! XD
Boost 可以選 BoostPro .
Code::Blocks 是還蠻好用的 IDE.