2013-05-26 67 views
2

當我嘗試在使用g ++編譯器的代碼塊上運行我的程序時,出現了這個非常奇怪的問題。我已經安裝了boost,並在大概一週前使用過它,但我從來沒有遇到任何問題。今天,我又回到了一個項目,我的工作,突然當我試圖運行它C++ boost線程從您的計算機中丟失

程序無法啓動,因爲libboost_thread-mgw47-MT-1_53.dll從缺,我得到以下錯誤信息你的電腦。嘗試重新安裝程序來解決這個問題。前

現在我已經使用升壓線程在這個節目,所以我不知道爲什麼我得到這個。還有一點奇怪的是,boost線程在我擁有的其他項目中工作。

我該如何着手解決這個問題?一切似乎都已到位,路徑變量設置,編譯器,鏈接器選項集等等......自從上次成功運行此程序以來,沒有任何事情可以改變。我今天更新了Visual Studio,但我認爲這不應該有任何效果。我不確定我可以提供哪些其他信息,因爲我不知道爲什麼會發生這種情況。 .dll文件確實存在,我試着將它移動到工作目錄中,但仍然得到相同的錯誤。

任何人有什麼建議我可以如何解決這個問題?

+0

將該dll拷貝到程序文件夾中? – wheybags

+0

我試過了,也沒有工作。 –

+0

@Muckle_ewe當你這樣做時發生了什麼? – jozefg

回答

1

你在該項目編譯器動態地連接升壓線程庫,

大概在連接選項的一些錯誤配置設置或您的代碼使用dllimport的,而不是它們在編譯時間解決「正常」功能(dllimport的解析函數在運行時 - 它不能在所需的庫中找到它們,所以你會得到一個錯誤)。

你的其他項目,因爲他們staticly鏈接升壓線程庫(提供靜態連接的corret升壓預處理器definisions /編譯和包括線程庫對應的CPP/LIB文件),所以它列入該計劃。

0

所以我想通了。 (再次注意,我正在使用代碼塊)

我已經在全局編譯器和鏈接器設置(我認爲足夠)中設置了一切。我已經在單個項目編譯器設置中設置了一切,但正在工作的項目在鏈接器設置中也有一些額外的東西。因此,除了項目 - >構建選項 - >搜索目錄 - >鏈接器部分中的設置外,我還設置了所有設置,並且選擇了項目名稱,而不是調試/發佈。我加入... $(#boost.lib) ............ \ boost_1_53_0 \ stage \ lib 現在很好。

令人驚訝的是,全局編譯器設置並不涵蓋單個項目設置,但你去了。

+0

所以......我的回答是否有幫助?其實這不是一個答案,我認爲你應該刪除這篇文章,並在你的問題處理另一標題:F – 2013-05-27 02:56:18