因為工作的需要,一直希望能在 Windows OS 中能執行 LLVM, Clang 等,但是找了一些網路的文件,目前對於 Windows 系統的支援還不成熟,特別是 Windows 64 bits,在 LLVM project 中只支援 32 bits。又不想再依照之前 compile llvm 3.0 所寫的 llvm.txt 文件,在 Windows 8 64-bits 系統來 compile LLVM 的套件,在網路上找到 MinGW 的開發者已經 compile 的 binary 檔,下載 ran_linn 編譯了 Clang + LLVM for Windows 64 bits 的 binary 檔,在測試 Hello World 的時候,無法載入 MinGW 64 的 include 檔,在 Clang on Windows 的這篇問答中,另一個開發者 rubenvb 回應這篇的問題,提供了他在 i686-w64-mingw32 編譯 Clang with LLVM 的 binary 檔 ,確實可以使用 Clang 及 Clang++ 來 compile C, C++ 的 source。另外, rubenvb 也有 compile 64 bits 的 LLVM 套件,不過,在下載的說明中他寫道:
I also provide 64-bit builds, but these are only useful for C. Compiling C++ to 64-bit object code will result in linker errors.
測試以後,他 compile 的 Clang 3.1 版本無法在 64-bits 的系統中正常 work。如果要測試LLVM 暫時要使用 rubenvb 所編譯 i686-w64-mingw32 的版本,或者到 FreeBSD or Ubuntu 的系統。
接著,在 CodeBlocks 中新增了一個 clang-llvm with mingw32 的 compile 環境,測試 boost library 是否可以使用? 結果是:可以 compile 成功,但是程式卻無法執行,雖然重新安裝 boost 32-bits 的版本,結果仍然一樣。所以,要使用 boost 仍然要使用 gcc 4.7.1 64 bits 來 compile source code。
目前所知僅有 32 bits 的 LLVM 可以使用,下載 rubenvb 所編譯的檔案,以及設定 CodeBlocks 整個過程紀錄如下`:
1. 下載 rubenvb 所編譯的可執行檔案,存在 c:\llvm-3.1 中
2. 在 CodeBlocks 中 新增一個新的 Compiler 項目:
2a1) Settings -> Compiler -> Copy tab -> 輸入 Clang and LLVM with i686-mingw32
2a2) Toolchain executable 中指定 llvm 的目錄及相關的執行檔:
3.新增一個 project,Compiler 選擇 Clang and LLVM with i686-mingw32
4. 寫 Hell World 測試
I also provide 64-bit builds, but these are only useful for C. Compiling C++ to 64-bit object code will result in linker errors.
測試以後,他 compile 的 Clang 3.1 版本無法在 64-bits 的系統中正常 work。如果要測試LLVM 暫時要使用 rubenvb 所編譯 i686-w64-mingw32 的版本,或者到 FreeBSD or Ubuntu 的系統。
接著,在 CodeBlocks 中新增了一個 clang-llvm with mingw32 的 compile 環境,測試 boost library 是否可以使用? 結果是:可以 compile 成功,但是程式卻無法執行,雖然重新安裝 boost 32-bits 的版本,結果仍然一樣。所以,要使用 boost 仍然要使用 gcc 4.7.1 64 bits 來 compile source code。
目前所知僅有 32 bits 的 LLVM 可以使用,下載 rubenvb 所編譯的檔案,以及設定 CodeBlocks 整個過程紀錄如下`:
1. 下載 rubenvb 所編譯的可執行檔案,存在 c:\llvm-3.1 中
2. 在 CodeBlocks 中 新增一個新的 Compiler 項目:
2a1) Settings -> Compiler -> Copy tab -> 輸入 Clang and LLVM with i686-mingw32
2a2) Toolchain executable 中指定 llvm 的目錄及相關的執行檔:
3.新增一個 project,Compiler 選擇 Clang and LLVM with i686-mingw32
4. 寫 Hell World 測試
留言
張貼留言