2009年2月14日

Windows中使用MinGW編譯部份的C++ Boost Library

大部份Boost裡面的library,都只需要include header file就可以正確的編譯成執行檔,但有一些library需要先編譯出*.lib或是*.dll在link時才能夠正確的編譯成執行檔。在1.38.0中,Filesystem, IOstreams, ProgramOptions, Python, Regex, Serialization, Signals, Thread, Wave這些都是需要先編譯的library,以下以Thread為例。

  • OS:Windows XP SP3
  • Compiler:MinGW 3.4.2
  • Boost library:1.38.0
  1. 首先系統必需先安裝好MinGW,並且加入MinGW_HOME/bin至PATH中。
  2. 將Boost的壓縮檔解開,並且加入Boost_HOME至PATH中。
    image
  3. 至網路上抓已經編譯好的bjam,解壓縮後放入BOOST_HOME中。
  4. 執行cmd模式,切換至BOOST_HOME目錄中,輸入bjam --toolset=gcc –with-thread stage
    其中—with-thread表示只編譯thread這一個library。
    image
  5. 系統會只編譯thread library,並且將lib和dll檔放在Boost_HOME/stage/libs中。
    image

接下來要開始寫程式時,只要記得在IDE(我的習慣是CodeBlocks和Eclipse)設定好include的路徑和link library就可以使用該library。