2013.08.15
--------------------------------------------
Boost 在 sourceforge 中也有 binary 的檔案,不需要到 BoostPro 中下載他們編譯的 binary 檔。 Boost document 是使用 DocBook 的套件所製作的文件,在 Boost document 第39章有介紹,另外,在 sourceforge 中也有 Boost document for pdf format 的檔案,。
---------------------------------------------
之前拿 boost library source code 來編譯,當時的版本是 1.38v,現在已經是 1.52v 了,不過編譯 boost 需要很多時間,不想再編譯,而在 Boost Getting Started on Windows 中寫道:The easiest way to get a copy of Boost is to use an installer,這個 installer 是 BoostPro Computing 所提供,下載這個 installer 以後,就像 Windows 安裝軟體那樣容易。
由於將 OS 升級為 Windows 8,之前所安裝的 boost library 已經不在,新版本 (1.51 版 by BoostPro) 是否將 include 的目錄架構變更或以前就沒有這個目錄,已經不可考了,總之,之前所寫的設定過程已經不能再使用了。不管這些的變化,主要能將 1.51 版本的 boost 讓 CodeBlocks IDE 可以讀得到才是重要,底下是整個設定的過程,在 codeblock.txt 檔中是簡單設定的版本。
1. 下載 installer, 選擇所需要的 library 形式來安裝,假設是安裝在 c:\library\boost_1_51 目錄
2. 在 CodeBlocks 中設定 Global variable:
2a.) Setting -> Global variable, new 一個 Current variable, 名稱輸入 boost
2b.) 在 Build-in field 的 base 欄位中輸入 c:\library\boost_1_51
2c.) 在 lib 欄位中輸入 c:\library\boost_1_51\lib ( include 欄位不需要輸入任何路徑)
3. 建立一個 project 或者在 Global Compiler Setting 中設定:
這二種的差別主要是 project 只是給目前的 project 所使用,而 Global Compiler Setting 是所有的程式都可以使用,包括單獨的 C++ 程式碼皆可以使用,不過缺點在於 compiler 時都會到 boost 目錄中搜尋。
3a. 建立一個 project:
3a1) File -> New -> Project, 輸入 project name, path, and where to save this project
3a2) 在 project name 按下滑鼠右鍵,選 build option
3a3) 在 Search Directory 的 compiler tab 中加入 $(#boost.include), linker tab 中加入 $(#boost.lib)
3a4) 如果使用 boostpro installer 安裝時沒有加入 path,請在 linker Setting tab 中加入 c:\library\boost1_51\lib 並且任意選擇一個 .lib or .a 的 library 來 linking
3a5) 可以使用任一 boost project 測試, 例如 boost_test project in my document folder
3b. Global Compiler Setting 中設定:
設定步驟與上面的相同,設定完成後就可以使用單一個 c++ 程式來測試,例如:boost_test.cpp in cppPrimer folder
簡單的說明 CodeBlocks 的 Global Variable 的意義:
1. Current Variable:
在 CodeBlocks 中 Global Variable 是指定變數及變數值讓 CodeBlocks 使用,在 Current Variable 中設定的名稱就是所謂變數名稱,以後在其他地方就可以使用 $(#變數名稱) 來關聯到變數相關的設定值。
2. base:
是指定變數值要存取的目錄位置,假設變數名稱設為 boost ,則在search directory 的 compiler tab 中輸入 $(#boost) 表示要 compiler 在 compiling 階段也要到 boost 變數所指定的 base 目錄中搜尋
3. include :
是指定 include 目錄所在的位置,但是 boost 1.51 以後的版本,目錄結構是 boost_1_51\boost ,且將 .hpp 檔皆放到這個目錄當中,再連結到相對應的目錄下的檔案,所以不需要設定 include 的目錄,空白即可。在 c++ source code 中 include <boost/timer.hpp> 就可以將 header include 進來。
4. lib :
是指定 lib 目錄所在的位置,因為 boost lib 檔都是在 c:\library\boost_1_51\lib 中,所以在 linking tab 中指定 $(#boost.lib) 是表示在 c:\library\boost_1_51\lib 中找 .lib, or .a 的檔案來做 linking。
同樣地,如果有其他的 library 可以依照上面的設定方法來設定相關的 include, library 檔。最後,特別要說明的是:如果 lib 檔可以在 OS 的 path 中找的到,可以不用再 build option 的 linker setting tab 中來指定相對的 .lib, or .a 檔
-----------------------------------------------------------------------
[1] http://forums.codeblocks.org/index.php/topic,16783.0.html
--------------------------------------------
Boost 在 sourceforge 中也有 binary 的檔案,不需要到 BoostPro 中下載他們編譯的 binary 檔。 Boost document 是使用 DocBook 的套件所製作的文件,在 Boost document 第39章有介紹,另外,在 sourceforge 中也有 Boost document for pdf format 的檔案,。
---------------------------------------------
之前拿 boost library source code 來編譯,當時的版本是 1.38v,現在已經是 1.52v 了,不過編譯 boost 需要很多時間,不想再編譯,而在 Boost Getting Started on Windows 中寫道:The easiest way to get a copy of Boost is to use an installer,這個 installer 是 BoostPro Computing 所提供,下載這個 installer 以後,就像 Windows 安裝軟體那樣容易。
由於將 OS 升級為 Windows 8,之前所安裝的 boost library 已經不在,新版本 (1.51 版 by BoostPro) 是否將 include 的目錄架構變更或以前就沒有這個目錄,已經不可考了,總之,之前所寫的設定過程已經不能再使用了。不管這些的變化,主要能將 1.51 版本的 boost 讓 CodeBlocks IDE 可以讀得到才是重要,底下是整個設定的過程,在 codeblock.txt 檔中是簡單設定的版本。
1. 下載 installer, 選擇所需要的 library 形式來安裝,假設是安裝在 c:\library\boost_1_51 目錄
2. 在 CodeBlocks 中設定 Global variable:
2a.) Setting -> Global variable, new 一個 Current variable, 名稱輸入 boost
2b.) 在 Build-in field 的 base 欄位中輸入 c:\library\boost_1_51
2c.) 在 lib 欄位中輸入 c:\library\boost_1_51\lib ( include 欄位不需要輸入任何路徑)
3. 建立一個 project 或者在 Global Compiler Setting 中設定:
這二種的差別主要是 project 只是給目前的 project 所使用,而 Global Compiler Setting 是所有的程式都可以使用,包括單獨的 C++ 程式碼皆可以使用,不過缺點在於 compiler 時都會到 boost 目錄中搜尋。
3a. 建立一個 project:
3a1) File -> New -> Project, 輸入 project name, path, and where to save this project
3a2) 在 project name 按下滑鼠右鍵,選 build option
3a3) 在 Search Directory 的 compiler tab 中加入 $(#boost.include), linker tab 中加入 $(#boost.lib)
3a4) 如果使用 boostpro installer 安裝時沒有加入 path,請在 linker Setting tab 中加入 c:\library\boost1_51\lib 並且任意選擇一個 .lib or .a 的 library 來 linking
3a5) 可以使用任一 boost project 測試, 例如 boost_test project in my document folder
3b. Global Compiler Setting 中設定:
設定步驟與上面的相同,設定完成後就可以使用單一個 c++ 程式來測試,例如:boost_test.cpp in cppPrimer folder
簡單的說明 CodeBlocks 的 Global Variable 的意義:
1. Current Variable:
在 CodeBlocks 中 Global Variable 是指定變數及變數值讓 CodeBlocks 使用,在 Current Variable 中設定的名稱就是所謂變數名稱,以後在其他地方就可以使用 $(#變數名稱) 來關聯到變數相關的設定值。
2. base:
是指定變數值要存取的目錄位置,假設變數名稱設為 boost ,則在search directory 的 compiler tab 中輸入 $(#boost) 表示要 compiler 在 compiling 階段也要到 boost 變數所指定的 base 目錄中搜尋
3. include :
是指定 include 目錄所在的位置,但是 boost 1.51 以後的版本,目錄結構是 boost_1_51\boost ,且將 .hpp 檔皆放到這個目錄當中,再連結到相對應的目錄下的檔案,所以不需要設定 include 的目錄,空白即可。在 c++ source code 中 include <boost/timer.hpp> 就可以將 header include 進來。
4. lib :
是指定 lib 目錄所在的位置,因為 boost lib 檔都是在 c:\library\boost_1_51\lib 中,所以在 linking tab 中指定 $(#boost.lib) 是表示在 c:\library\boost_1_51\lib 中找 .lib, or .a 的檔案來做 linking。
同樣地,如果有其他的 library 可以依照上面的設定方法來設定相關的 include, library 檔。最後,特別要說明的是:如果 lib 檔可以在 OS 的 path 中找的到,可以不用再 build option 的 linker setting tab 中來指定相對的 .lib, or .a 檔
-----------------------------------------------------------------------
[1] http://forums.codeblocks.org/index.php/topic,16783.0.html
留言
張貼留言