添加包含路径时出现makefile错误

时间:2012-06-21 10:07:26

标签: header makefile g++ linker-errors

我的makefile中有一个非常奇怪的错误:如果我将不正确的路径传递给boost include文件夹,则会生成以下内容,并获得.o文件。但是,当我通过正确的路径时,我收到以下错误:

  

/src/third-party/build/boost_1_49_0/include/boost/container/map.hpp:147:1:   错误:将'sizeof'应用于不完整类型无效   'boost :: STATIC_ASSERTION_FAILURE'make: * [Bidding.o]错误1

makefile位于

之下
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/$@ -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

有人可以建议

非常感谢

1 个答案:

答案 0 :(得分:0)

可能是你在某处安装了另一个旧版本的boost,例如/ usr / include / boost。您的代码可能会使用旧版本进行构建,但不会使用1.49。

此外,通常不需要使用-I.。只需使用include ""(带双引号)搜索执行包含的文件的文件夹。