2017-09-06 76 views
0

這些都是頭文件和庫編譯錯誤:致命錯誤:「升壓/數字/ uBLAS庫/ matrix.hpp」找不到文件

#include <iostream> 
#include <algorithm> 
#include <stdio.h> 
#include <math.h> 
#include <vector> 
#include <numeric> 
#include <strings.h> 
#include <assert.h> 

#include <dirent.h> 


#include <boost/numeric/ublas/matrix.hpp> 
#include <boost/numeric/ublas/io.hpp> 

#include <boost/geometry.hpp> 
#include <boost/geometry/geometries/point_xy.hpp> 
#include <boost/geometry/geometries/polygon.hpp> 
#include <boost/geometry/geometries/adapted/c_array.hpp> 


#include "mail.h" 

我試圖編譯這個C++我得到了使用

文件
g++ -O3 -DNDEBUG -o evaluate_object evaluate_object.cpp 

的編譯輸出

evaluate_object.cpp:13:10: fatal error: 'boost/numeric/ublas/matrix.hpp' file 
     not found 
#include <boost/numeric/ublas/matrix.hpp> 
     ^
1 error generated. 

PS:我在MacOS上運行塞拉利昂10.12 我試圖用t安裝升壓HESE方式:

  • sudo的港口安裝升壓
  • 釀造安裝升壓
  • sudo的港口安裝升壓+通用

但我仍然有同樣的問題。 我很樂意擺脫這個noob區域。 我也是macos新手。

回答

0

看來你的「提升」包括目錄不存在於環境定義的包含目錄中。您可能希望通過傳遞「-I」的說法到g ++命令來指定一個,即

g++ -O3 -DNDEBUG -I/usr/local/Cellar/blahblah -o evaluate_object evaluate_object.cpp

而且你的代碼是不完整的,或者如果你真的撥打了一些提升功能,您可能需要添加一些對象聯繫起來然後你將面對「未定義的參考」錯誤。爲了克服這種情況,你需要爲你的g ++命令指定「-L」標誌。

+0

我不太明白-l標誌的作用,但我試着運行你的建議命令。 g ++ -O3 -DNDEBUG -l/usr/local/Cellar/boost -o evaluate_object evaluate_object.cpp 我仍然得到相同的輸出錯誤。關於代碼,它太長了。這不是我的代碼 – Wes

+0

-I標誌指向編譯器查找代碼中包含的頭文件的目錄。請檢查提及的內容是否存在於您的驅動器上,如果這不是您的升級安裝不包含uBLAS。 – Alex

+0

我檢查了以下目錄:/usr/local/Cellar/boost/1.65.0/include/boost/numeric/ublas。 boost和uBLAS都可以在物理上找到,如您所見。我現在應該怎麼做 ? – Wes

相關問題