2015-11-06 31 views
0

我正試圖在運行Raspbian的RaspberryPi 2上構建開放路由路由機。但是,它需要線程構建模塊庫。我嘗試了幾個apt-get命令,但它一直告訴我它找不到存儲庫。具體來說,它說:開放街道路由機的安裝線程構建模塊

Package libtbb-dev is not available,but is refered to by another package. 
This may mean that the package is missing, has been obsoleted, or 
is only available from another source 
E: Package 'libtbb-dev' has no installation candidate. 

我終於打破並下載了TBB源並建立了它。從我所知道的,線程構建塊成功構建,但試圖構建OSRM我仍然得到TBB庫無法找到的錯誤。我嘗試將構建的TBB目錄複製到我認爲OSRM正在尋找它們的位置(「/ opt/intel/tbb」,「/ usr/include」),但沒有任何工作。

有沒有人知道我可能會做錯什麼?

編輯:這是試圖建立OSRM當我收到錯誤:

ERROR: Intel TBB NOT found! 
-- Looked for Threading Building Blocks in  /opt/intel/tbb;/usr/local/include;/usr/include 
CMake Error at cmake/FindTBB.cmake:272 (message): 
    Could NOT find TBB library. 
Call Stack (most recent call first): 
    CMakeLists.txt:191 (find_package) 
+0

你能至少提供相關的錯誤信息? – scai

+1

錯誤:找不到Intel TBB! - 在/ opt/intel/tbb;/usr/local/include;/usr/include中查找線程構建塊找不到TBB庫。 調用堆棧(最近呼叫優先): CMakeLists.txt:191(find_package) – thedude

+0

這可能不會真正幫助您解決當前問題,但可以幫助您獲得某些內容;)https://karussell.wordpress.com/2014/ 01/09/road-routing-on-raspberry-pi-with-graphhopper/ – Karussell

回答

1

TBB makefile文件不支持全系統安裝。它將文件既不在/opt也不在/usr。這通常由Intel Composer/Compiler/Parallel Studio安裝程序(位於/opt/intel)或Linux發行本身(位於/usr)完成。但你的發行版似乎不提供安裝tbb軟件包。

所以,如果你想用你自己編譯TBB的二進制文件,去$TBBROOT/build/linux*_release/目錄和tbbvars.sh腳本從那裏以設置您的環境編譯程序之前,(你將能夠編譯TBB的例子) :

$ source ./tbbvars.sh

$ . ./tbbvars.sh

(注意:由於你的環境不會被修改,因此你的環境將不會被修改)

儘管CMake的FindTBB模塊可能足夠愚蠢,仍然會報告TBB沒有找到,因爲TBB並沒有正式支持CMake。在這種情況下,您可能需要修復FindTBB模塊以查看TBB路徑的env變量,或者通過將共享庫和包含文件複製到CMake期望它們位於的位置來手動執行系統範圍的安裝。

文件中/opt/intel/tbb佈局如下(修改/縮短ls -R輸出):

/opt/intel/tbb/: 
/opt/intel/tbb/include: 
#copy tbb includes here 
/opt/intel/tbb/include/tbb: 
*.h 
/opt/intel/tbb/include/tbb/compat: 
*.h 
/opt/intel/tbb/include/tbb/internal: 
*.h 
/opt/intel/tbb/include/tbb/machine: 
*.h 
/opt/intel/tbb/lib: 
/opt/intel/tbb/lib/ia32_lin: 
/opt/intel/tbb/lib/ia32_lin/gcc4.1: 
/opt/intel/tbb/lib/ia32_lin/gcc4.1/irml: 
/opt/intel/tbb/lib/ia32_lin/gcc4.4: 
/opt/intel/tbb/lib/ia32_lin/gcc4.4/irml: 
/opt/intel/tbb/lib/intel64_lin: 
/opt/intel/tbb/lib/intel64_lin/gcc4.1: 
/opt/intel/tbb/lib/intel64_lin/gcc4.1/irml: 
/opt/intel/tbb/lib/intel64_lin/gcc4.4: 
irml/     libtbbmalloc_proxy_debug.so libtbbmalloc.so.2   libtbb.so 
libtbb_debug.so   libtbbmalloc_proxy_debug.so.2 libtbb_preview_debug.so libtbb.so.2 
libtbb_debug.so.2  libtbbmalloc_proxy.so   libtbb_preview_debug.so.2 
libtbbmalloc_debug.so libtbbmalloc_proxy.so.2  libtbb_preview.so 
libtbbmalloc_debug.so.2 libtbbmalloc.so    libtbb_preview.so.2 
+0

我很難確定cmake正在尋找什麼。我試圖將我的tbb文件夾的全部內容複製到預期的目錄中,但仍然收到相同的錯誤。我試過只複製tbb文件夾的一部分(特別是庫),但沒有改變。 ,還有,你是什麼意思的來源'tbbvars.sh'?我運行了tbbvars.sh並且沒有顯示錯誤,所以我假設環境變量已經設置好了。在再次運行之前,我是否需要修改它? – thedude

+0

@thedude我已將補充說明添加到答案中。 – Anton

+0

所以你做錯了。執行'tbbvars.sh'什麼也不做,你想通過發送到你當前的shell來'包括'它。並且複製不起作用,因爲目錄和文件有不同的佈局 – Anton

相關問題