2010-03-25 54 views
9

我想在Eclipse中的C++項目中使用Boost庫。在Boost中使用僅包含頭文件的庫時,我可以成功構建,例如使用lambda頭的「入門指南」指南中的示例簡單程序。在Eclipse中鏈接升壓到我的C++項目

我無法讓我的項目成功鏈接到正則表達式Boost庫,如指南中稍後所示。在我的項目屬性 - > C/C++編譯 - >設置 - >工具設置選項卡 - >庫,我已經加入 「libboost_regex」 到庫中,而「C:\ Program Files文件\提升\ boost_1_42_0 \ bin.v2 \庫「到庫搜索路徑框中,因爲這是所有.lib文件所在的位置。我甚至嘗試在庫文件夾中添加「libboost_regex-mgw34-mt-d-1_42.lib」而不是「libboost_regex」,因爲這是確切的文件名,但這也不起作用。

當我試圖建立我的項目時,我總是收到一個錯誤,說「找不到-llibboost_regex」。任何想法如何我可以解決這個問題?

編輯:在Windows XP中,使用MinGW的,我已經試過「boost_regex」以及..

+0

不應該是-lboost_regex? – 2010-03-25 22:01:56

+2

你在哪個平臺上?你使用什麼編譯器/鏈接器? – 2010-03-25 22:04:10

+0

你自己建立提升嗎? – 2010-03-25 22:16:46

回答

19

我剛剛完成了安裝MinGW,編譯boost和安裝Eclipse CDT的整個過程,我可以使用boost:regex編譯簡單的程序。我會寫下所有的步驟。我希望能有所幫助。

我已經在他們的默認位置安裝了MinGW和MSYS。

下面是我建升壓步驟:從http://sourceforge.net/projects/boost/files/boost-jam

  • 把你的PATH某處bjam.exe

    • 下載boost-jam-3.1.18-1-ntx86.zip
    • C:\mingw\boost_1_42_0
    • 拆開升壓打開一個MSYS終端窗口,cd /c/mingw/boost_1_42_0
    • 在升壓目錄下運行bjam --build-dir=build toolset=gcc stage

    配置Eclipse:

    • CDT添加到Eclipse 3。5從the update site
    • 創建一個新的C++項目
    • 項目菜單中選擇性能
    • 確保配置調試[活動]
    • 在「C/C++通用 「>」路徑和符號

      • 根據包括選項卡中選擇GNU C++語言並添加C:\MinGW\boost_1_42_0
      • 根據庫路徑標籤添加C:\MinGW\boost_1_42_0\stage\lib
    • 在 「C/C++編譯」>「設置

      • 選擇MinGW的C++鏈接器>
      • 點擊Add按鈕庫(-l)
      • 類型 (不.LIB)

    然後,您可以請執行版本配置的相同步驟,但改爲使用libboost_regex-mgw34-mt。另外請確保您的源文件包括<boost/regex.hpp>

  • +1

    非常感謝!我將庫路徑目錄更改爲stage \ lib目錄並添加了libboost_regex-mgw34-mt-d並且它工作正常! – MahlerFive 2010-03-26 03:18:32

    +1

    我發現一步一步的這對eclipse方面非常有幫助。我必須結合使用它與這個其他問題來幫助我通過最新的目錄結構和構建過程來提升:http://stackoverflow.com/questions/5299468/unable-to-build-boost-libraries-with- gcc(答案是7歲,所以沒有投訴,只是更新!) – Brick 2017-03-11 22:55:26

    0

    我相信你的庫路徑指向錯誤的地方。該庫將被安裝到:

    boost_install_dir \ boost_1_42 \ lib中

    我覺得默認的boost_install_dir爲 「C:\ Program Files文件\升壓」(不知道,因爲我不使用默認的安裝目錄)。

    +1

    我有一個「libs」目錄,但不是我的boost目錄中的「lib」,但它實際上並不包含bin.v2 \ libs目錄中的編譯文件 – MahlerFive 2010-03-26 03:11:20

    7

    要鏈接到eclipse中的boost庫,您需要設置eclipse的項目庫路徑(帶有-L的那個)和庫的名稱(帶有-l )。

    必須刪除前綴'lib'和庫名的擴展名: - 例如:libboost_regex.a應該指定爲boost_regex。

    +1

    謝謝!我在Mac OS X上使用了這個軟件。結束時只需輸入「boost_system」作爲-l和我的-L指向「bin.v2/libs」。 – span 2012-02-18 15:35:26

    +1

    這應該是正確的答案。它解決了所有操作系統上的問題,並且與版本無關。 – Zippo 2013-07-03 14:36:00