2012-06-21 43 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