2012-06-21 60 views
0

我有我的生成文件內一個非常奇怪的錯誤:如果我通過一個不正確的路徑提升包括文件夾下面的構建和我得到.o文件。然而,當我通過正確的路徑,我收到以下錯誤:當添加生成文件錯誤包括路徑

/src/third-party/build/boost_1_49_0/include/boost/container/map.hpp:147:1: error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE’ make: * [Bidding.o] Error 1

生成文件低於

CC=g++ 
TPLOC=/home/zil/RTB2/0.1/src/third-party/build 
COMMON=/home/zil/RTB2/0.1/src/common 
SRC_HEAD=/home/zil/RTB2/0.1 

all: Bidder.o main.o main 

Bidder.o: Bidder.cpp 
     $(CC) -g -fPIC -c Bids.cpp -I$(TPLOC)/boost_1_49_0/include -I. 

main.o: main.cpp 
    $(CC) -g -fPIC -c main.cpp -I$(TPLOC)/boost_1_49_0/include -I$(COMMON) -I$(TPLOC)/libzdb/include/zdb -I$(TPLOC)/apache/include 

main: main.o 
    $(CC) -fPIC main.o -o /home/zil/sandbox9/[email protected] -lbk -lrtbshm -lboost_program_options -lboost_thread -lapr-1 -lrt -lpthread -lzdb -L $(SRC_HEAD)/build/lib -L$(COMMON)/shm -L $(TPLOC)/boost_1_49_0/lib -L $(TPLOC)/libzdb/lib -L $(TPLOC)/apache/lib 

有人可以請告知

千恩萬謝

回答

0

這可能是你有在另一個地方安裝另一個較舊版本的boost,例如/ usr/include/boost。您的代碼可能會以舊版本的方式構建,但不會與1.49版本構建。

而且,通常沒有必要使用-I.。只需使用include ""(帶雙引號)來搜索包含文件的文件夾。

+0

好點的,還有另外一個增壓設定的範圍內usr/include目錄包括 - 但爲什麼它抱怨時,我強迫它上面指定的路徑內看看嗎? – godzilla

+1

沒有看到代碼就看不清楚。發佈展示該問題的最小完整代碼。 –

+0

這是升壓呼叫我使代碼m_bids =新managed_shared_memory內(open_or_create, 「測試」, 大小,0,ALLOW_ALL); – godzilla