gpt4 book ai didi

linux - 如何在 makefile 中包含 .h 文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:33:12 25 4
gpt4 key购买 nike

我正在为一个大项目编程,所以我与他人合作。为了便于管理,我的目录如下:

project:
--include (header files from others supplied for me)
--lib (libraries from others supplied for me)
--L3_CVS (this folder include all my files)
-- Makefile
-- sourceFile (all my source files here)
-- include_private(all header files used only by myself)
-- appl (all my C files here)

我的 Makefile 如下:

####################################################
CROSS_COMPILE=/home/powerpc-wrs-linux-gnu/x86-linux2/powerpc-wrs-linux-gnu-ppc_e500v2-glibc_cgl-

EXTRA_CFLAGS += -g

EXTRA_LDFLAGS +=

LIBSB =-Wl,--start-group -ldiag -ldiag_esw -lacl -ldiagcint -lcint -lsal_appl -lsal_appl_editline -lsal_appl_plat\

-lbcm -lbcm_esw -lbcm_common -lfirebolt -ltitan -ltrident -lhumv -lbradley -lherc -ldraco -lscorpion\

-ltriumph -ltrx -ltriumph2 -lenduro -lkatana -lflexctr -lptp -lsoc_esw -lsoc -lsoc_phy -lsoc_mcm\

-lsoccommon -lsoc_shared -lshared -lsal_core -lsal_core_plat -lcustomer -lsoc_nemo -lsoc_clsbuilder\

-lsoc_sal \

-lbcm_compat -lbcm_rpc -lcpudb -ltrx -lstktask -llubde -ldrivers -ldiscover -lcputrans \

-lrcu -lpthread -lrt -lm -Wl,--end-group

LIBS = -ldiag -lrcu

CC = $(CROSS_COMPILE)gcc

LD = $(CROSS_COMPILE)ld

AR = $(CROSS_COMPILE)ar

STRIP = $(CROSS_COMPILE)strip


SRC_PATH := ./SourceFile/appl

HEAD_PATH := ./SourceFile/include-private


INC_DIR = ../include

LIB_PATH = ../lib


APP_NAME = L3appl

SRCS := $(wildcard $(SRC_PATH)/*.c)

export $(SRCS)

OBJS:= $(patsubst %.c,%.o,$(SRCS))

%.d: %.c

@set -e; rm -f $@; \

$(CC) -MM $< > $@.$$$$; \

sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \

rm -f $@.$$$$

sinclude $(SRCS:.c=.d)

INCLUDES = $(wildcard $(HEAD_PATH)/*.h)

$(APP_NAME):$(OBJS)

$(CC) -c -I$(INC_DIR) $(SRCS)

$(CC) -o $(APP_NAME) $(OBJS) -L$(LIB_PATH) $(LIBSB) -lpthread -lrt -lm


.PHONY:clean

clean:

rm -f $(OBJS) $(APP_NAME)
#################################################

我的问题是,当我在终端中运行 make 时,它​​总是显示:***No such file or directory编译终止。这似乎不包括 ./SourceFile/include-private 中的 .h 文件。

但实际上,我已经使用“INCLUDES = $(wildcard $(HEAD_PATH)/*.h)”包含这些 .h 文件。

不知道哪里错了!

这是我第一次写makefile。因此,如果我的 makefile 中有错误,我将不胜感激您指出它们!

非常感谢您的帮助!!!!!!!

最佳答案

你应该有类似的东西

 CFLAGS = -Wall $(OPTIMFLAGS) $(INCLUDEFLAGS)
INCLUDEFLAGS = -I $(INC_DIR) -I $(HEAD_PATH)
OPTIMFLAGS = -g -O

您可以使用 remake调试您的 Makefile

关于linux - 如何在 makefile 中包含 .h 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9857949/

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