私は大きなプロジェクトのためにプログラミングしているので、他の人と協力しています。メイクファイルに.hドキュメントを含める方法
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 [email protected]; \
$(CC) -MM $< > [email protected]$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o [email protected] : ,g' < [email protected]$$$$ > [email protected]; \
rm -f [email protected]$$$$
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を実行するとき、それは常に表示されていることである: は、ディレクトリ管理が容易にするために、私のディレクトリは、以下のようなものです** *そのようなファイルやディレクトリはありません コンパイルが終了しました。 ./SourceFile/include-privateの.hファイルは含まれていないようです。
しかし、実際には、これらの.hファイルをインクルード= $(ワイルドカード$(HEAD_PATH)/ *。h) "を使用しています。
どこが間違っているのですか?
これは私の初めてのmakefileです。だから私のメイクファイルに間違いがある場合は、あなたがそれらを指摘していただければ幸いです!
ご協力いただきありがとうございます!!!!!!!
ありがとうございます!しかし、あなたの方法は動作しません! – city
を試してみてください:$(CC)-include $(INCLUDES)-c -I $(INC_DIR)$(SRCS)、私はparam orderを乱したと思います – grifos
いいえ、どちらも動作しません。 – city