gpt4 book ai didi

c - makefile(链接2个源文件,非主文件)

转载 作者:行者123 更新时间:2023-11-30 20:38:11 25 4
gpt4 key购买 nike

我有一个包含 4 个源文件的项目: RTP.c、RTCP.c RTSP.c main.c和3个头文件: RTP.h RTCP.h RTSP.h在我将头文件包含在源文件中之后,我必须将所有头文件包含在 main 中,将 RTCP.h 包含在 RTP.c 中,并将它们链接到 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"

生成文件:

    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

最佳答案

您的问题不是很详细,但是,快速浏览一下您的 makefile,我们可以说,按照 online gcc manual ,

-o file

Place output in file file. This applies to whatever sort of output is being produced, whether it be an executable file, an object file, an assembler file or preprocessed C code.

基本上,这表示 -o 的下一个参数应该是输出文件名。

此外,请遵循 order of linkingpthread库应该放在最后,就像

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

关于c - makefile(链接2个源文件,非主文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30209989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com