2010-04-28 43 views
2

我剛剛使用sudo port install boost從macports安裝了boost 1.42.0。Makefile找不到由macports安裝的boost庫

一切工作正常。現在我有一個項目正在嘗試使用makefile進行構建。一切都很好,直到需要增強庫的文件。

它說:
的src/graph.h:20:42:錯誤:升壓/圖形/ adjacency_list.hpp:沒有這樣的文件或目錄

這個文件實際上是位於兩個地方:
/選擇/本地/包括/升壓/圖/ adjacency_list.hpp

/opt/local/var/macports/software/boost/1.42.0_0/opt/local/include/boost/graph/adjacency_list.hpp

在尋找boost/graph/adjacency_list.hpp的文件src/graph.h中,include語句在這裏:
#include<boost/graph/adjacency_list.hpp>

如何使這項工作?

+0

第二條路徑看起來不對。 – 2010-04-28 05:44:42

回答

13

您需要告訴編譯器安裝Boost的基本目錄。你可以用編譯器的-I命令行選項做到這一點:

g++ -I/opt/local/include ... 
+1

難道我沒有辦法讓所有未來的項目都能使用boost自動搜索/提升該路徑嗎?我必須在每個項目中都做到這一點嗎? – 2010-04-28 06:00:22

+2

它的工作,但我仍然好奇。附:對於任何想要知道如何在mac上構建SLAM6D的人:打開makefile.options(在從makefile.options.macosx重命名後),並在底部添加此行與其他CFLAGS CFLAGS + = -I/opt/local/include – 2010-04-28 06:03:20

+3

@pinnacler - 你可以做'ln -s/opt/local/include/boost/usr/include' – 2010-04-28 06:09:10

2

將這些路徑之一添加到包含路徑中。

可以包括使用該包括版本:

#include <boost/version.hpp> 

定義:

#define BOOST_VERSION 104200 
#define BOOST_LIB_VERSION "1_42" 

使用此,如果你的編譯器是使用你想要使用的版本進行驗證。