2013-07-07 66 views
0

我不斷收到此錯誤信息,不知道爲什麼圖像。日食Mac安裝是錯誤的,由於「未加載庫」「未找到」

dyld的:庫未加載:libboost_thread.dylib 引用自:/用戶/ adhg /文檔/ workspace_cpp/Boost_101 /釋放/ Boost_101 原因:圖像沒有發現

的代碼:

#include <iostream> 
#include <boost/thread.hpp> 

void workerFunction() { 
boost::posix_time::seconds workTime(3); 
std::cout << "Worker: running" << std::endl; 
boost::this_thread::sleep(workTime); 
std::cout << "Worker: finished" << std::endl; 
} 

int main() { 
std::cout << "main: startup" << std::endl; 
boost::thread workerThread(workerFunction); 
std::cout << "main: waiting for thread" << std::endl; 
workerThread.join(); 
std::cout << "main: done" << std::endl; 
return 0; 
} 

我所做的僅僅是按照說明here和其他許多地方,最基礎的:

  1. 下載升壓
  2. 解壓到文件夾
  3. ./bootstrap.sh
  4. ./bjam

你會注意到,USR /本地/升壓......是我實際配售我的文件夾(它存在)和usr/local/boost_1_54_0/stage/lib下我有libboost_thread等等。仍然...不知道爲什麼我得到這個錯誤。

我的設置看起來像現在這樣:

enter image description here

enter image description here

任何人都可以指出我究竟做錯了什麼?

回答

2

這看起來是一個動態鏈接問題,從一點研究看來,通過設置DYLD_LIBRARY_PATH環境變量指向庫所在的位置(在您的情況下,/usr/local/boost_1_54_0/stage/lib),可以解決此問題。您不妨讀一讀this similar questionthis external page,後者規定

這happend因爲我建立促進從源並保持它地方。因此,圖書館的路徑不是默認的。爲了解決這個問題,我們必須修改環境變量DYLD_LIBRARY_PATH,它類似於Linux的LD_LIBRARY_PATH

(而且,我就提到,如果你只在線程功能感興趣,而不是升壓作爲一個整體,你可以使用C++ 11的<thread>頭。)

+0

的感謝!我添加了這個PATH,但同樣的問題。 – adhg

+1

嗯,奇怪。我在這裏沒有想法了!唯一的其他東西我可以建議(如果你不這樣做的話)是直接設置環境變量'DYLD_LIBRARY_PATH'在Eclipse中。我偶然發現了一個指南(請參閱[這裏](http://gordienoye.ca/words/?p=10)),也涉及到使用Boost與Eclipse在Mac OS X,有你有同樣的問題,但解決它使用Eclipse的環境變量功能。可能是Eclipse沒有正確地從您的shell中獲取環境變量。除此之外,我不太確定。您也可以嘗試Eclipse留言板。 – 2013-07-07 23:55:34

+0

@ user2530166不錯,您最近對Eclipse EnvVars的評論爲我解決了它 – user695652

相關問題