错误:make:***没有规则来制作目标`main.c',`main.o'需要。停止

时间:2013-04-16 05:27:26

标签: c linux makefile

CC= gcc

CFLAGS= -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_XSLT=1 \
  -DXMLSEC_NO_XKMS=1 -I/usr/include/libxml2 -DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 \
  -DXMLSEC_CRYPTO=\"openssl\" -DUNIX_SOCKETS -DXML_SECURITY -DDEBUG \
  -I/usr/local/include/xmlsec1 -lxmlsec1 

LDFLAGS= -lcrypto -I/usr/include/libxml2 -I/usr/local/include/xmlsec1 \
  -lxmlsec1 -lprotobuf-c

default: shr
#pb stands for protobuf file

shr:    main.o  file2.o file3.pb-c.o
            $(CC)   $(CFLAGS)   -o shr main.o   file2.o file3.pb-c.o

main.o: main.c  header.hfile2.h file3.h
                $(CC)   $(CFLAGS)   -c main.c

file2.o:    file2.c file2.h
                $(CC)   $(CFLAGS)   -c axisuid_auth.c

file3.pb-c.o:   file3.pb-c.c    file3.h
                $(CC)   $(CFLAGS)   -c file3.c

clean:
        $(RM)   shr *.o *~  

1 个答案:

答案 0 :(得分:4)

正如您所说,所有.c和.h文件都在 src文件夹中。因此,在Makefile中的情况下,您应该将其指定为 src / main.c