2016-06-21 91 views
0

我有下面给出的makefile。当我做make我收到以下错误makefile找不到来自-I include路径的头文件

cc -c -o timing.o timing.c 
test_c.c:5:17: fatal error: test.h: No such file or directory 
#include "test.h" 

我已经手动verfied是test.h存在于../include路径。我不知道这是为什么不找头file.It将是巨大的,如果有人能help.Also我期望的g++代替cc

# Makefile template for shared library 

CXX = g++ # C++ compiler                                          
CXXFLAGS = -fPIC -Wall -Wextra -O2 -g -I../include #CXX flags 
LDFLAGS = -lboost_system -shared # linking flags 

RM = rm -f # rm command 

TARGET_LIB = libtest.a # target lib 


C_SRCS := test_a.c test_b.c 
CPP_SRCS := test_c.cpp test_d.cpp 
OBJS := $(C_SRCS:.c=.o) $(CPP_SRCS:.cpp=.o) 

.PHONY: all 

all: ${TARGET_LIB} 

$(TARGET_LIB): $(OBJS) 
    $(CXX) $(CXXFLAGS) ${LDFLAGS} -o [email protected] $^ 


.PHONY: clean 
clean: 
    -${RM} ${TARGET_LIB} ${OBJS} 

回答

1

您还没有书面的建筑规则timing.c中的timing.o,Make使用它的默认规则。

但是该规则使用CFLAGS而不是CXXFLAGSCXXFLAGS变量出现在从C++源构建对象文件的规则中。

所以修改CFLAGS而不是CXXFLAGS,它应该工作。

+0

@alvits:你说得对,当我看到你的评论时,我正在纠正这个问题。 – Beta