makefile(链接2源文件非主要)

时间:2015-05-13 08:51:50

标签: c makefile

我有一个包含4个源文件的项目:    RTP.c,RTCP.c RTSP.c main.c 和3个头文件:   RTP.h RTCP.h RTSP.h 我必须在主文件中包含所有头文件,在RTP.c中包含RTCP.h后,我将头文件包含在源文件中,我将它们链接到make文件中,请帮助我理解问题。 RTP.c

    #include "RTP.h"
    #include "RTCP.h"

RTCP.c

    #include "RTCP.h"

RTSP.c

    #include "RTSP.h"

main.c

    #include "RTP.h"
    #include "RTSP.h"

make文件:

    OBJS = main.o RTPfunctions.o RTCPfunctions.o RTSPfunctions.o
    CC = gcc
    CCFLAGS  = -g

   Client : $(OBJS)
         $(CC) $(OBJS) -o -pthread client

   RTCPfunctions.o : RTCPfunctions.c RTCPfunctions.h
         $(CC) -c -g -pthread RTCPfunctions.c

   RTSPfunctions.o : RTSPfunctions.c RTSPfunctions.h
        $(CC) -c -g  -pthread RTSPfunctions.c

   RTPfunctions.o : RTPfunctions.c RTPfunctions.h RTCPfunctions.h
       $(CC) -c -g -o -pthread RTPfunctions.c RTCPfunctions.o

   main.o : main.c RTPfunctions.h RTSPfunctions.h
      $(CC) -c  -g -o -pthread main.c RTPfunctions.o RTSPfunctions.o

   clean:
     \rm *.o *~ client

1 个答案:

答案 0 :(得分:0)

你的问题不是很冗长,但是,根据online gcc manual,我们可以说,快速浏览你的makefile,

  

-o file

     

将输出放在文件file中。这适用于生成的任何类型的输出,无论是可执行文件,目标文件,汇编程序文件还是预处理的C代码。

基本上,这就是说,-o的immidiate next参数应该是输出文件名。

另外,要关注order of linkingpthread库应放在最后,例如

 $(CC) $(OBJS) -o  client -pthread