0

我想用Boost庫配置Code :: Blocks(在Windows上運行,使用MinGW)。我建立了這個庫,並且已經安裝了所有的東西到C:\ Program Files \ boost_1_47_0。在代碼塊中使用Boost的問題::塊

在Code :: Blocks本身中,我創建了一個全局變量,它使用兩個內置字段'base'和'include',它們都指向boost安裝路徑。

我也修改了構建選項下的鏈接器設置,並添加了一個鏈接庫'$(#boost.lib)'。爲了測試提升,我已經將#include放入了我的項目中,而沒有真正使用include。然而,這個項目並沒有建立(當然在編譯#include之前就已經做了),並且我得到一個來自「ld.exe」的編譯錯誤,它說「找不到-l-lstdC++」。有誰知道我做錯了什麼?

乾杯。

+0

stdC++(即libstdC++)是標準C++庫,它與boost無關。你能展示一些觸發行爲的代碼示例嗎?你的系統上是否安裝了標準庫? – celavek

+0

我想你已經看過這個http://wiki.codeblocks.org/index.php?title=BoostWindowsQuickRef。 – celavek

+0

是的,我已經看過。好吧,奇怪的是,現在的代碼並不會構建,即使#include 已被註釋掉,這很奇怪,因爲我確信它以前會構建,這意味着我必須在嘗試提升工作時做了一些事情。我不確定什麼代碼會觸發這個行爲,這似乎與項目設置有關。這有可能與鏈接器設置或全局變量有關嗎? – Aaron

回答

0

您收到的錯誤說它找不到-l-lstdc++;鏈接庫設置存在錯誤。

如果你嘗試編譯一個簡單的C++的命令行和類型(非升壓)應用:

g++ main.cpp -o main.o -l-lstdc++ 

你會得到相同的錯誤你在代碼:: Blocks的看到:

/usr/bin/ld: cannot find -l-lstdc++ 

這是因爲你的庫名指定爲-lstdc++時,它應該只是stdc++用了-l。 (該-l是一個標誌,告訴編譯器的下一個單詞是一個圖書館的名稱。)

檢查鏈接庫設置額外-l,或者嘗試用實際路徑Boost庫替換$(#boost.lib)