我需要一個以前提供的Makefile,能夠使用.CPP文件編譯.C文件。在這個Makefile被創建時,我們沒有在項目中的任何.C文件,但已經改變了,所以我修改Makefile文件如下:需要使用Makefile編譯一個包含C++和C代碼的程序
GPP=g++
CPPSRCS= \
./CBDefault.cpp \
./testPFDefault.cpp \
./PFDefault.cpp \
./xapiDebug.cpp \
./init.cpp \
./tracePriorityManager.c \
CFLAGS= -O0 -g3 -Wall -c -fmessage-length=0 -std=c++0x -IASB -IALU
-Istub -IIKAN
OBJ_DIR=../build/pxy/obj
OBJS := $(foreach s,$(CPPSRCS:.cpp=.o),$(OBJ_DIR)/$(notdir $s))
PROG=../build/pxy/pxy
$(PROG): $(OBJS) | $(dir $(PROG))
$(GPP) -o [email protected] $(OBJS)
$(OBJ_DIR):
mkdir -p [email protected]
$(foreach src,$(CPPSRCS),$(eval $(OBJ_DIR)/$(notdir $(src:.cpp=.o)):
CSRC=$(src)))
$(OBJS): | $(OBJ_DIR)
$(GPP) $(CFLAGS) -c -o [email protected] $(CSRC)
添加tracePriorityManager.c到CPPSRCS宏列表。 編譯導致錯誤信息,內容如下一個長長的清單:
../build/pxy/obj/tracePriorityManager.c:10:3607: warning: null
character(s) ignored
../build/pxy/obj/tracePriorityManager.c:10:3618: warning: null
character(s) ignored
../build/pxy/obj/tracePriorityManager.c:10: error: stray ?\1? in program
../build/pxy/obj/tracePriorityManager.c:10:3620: warning: null
character(s) ignored
你可以建議將解決這個問題的Makefile文件的變化?
使用默認規則,'.c'文件通常使用'gcc'進行編譯。無論如何,這些警告(肯定可以解決),而不是錯誤。 –
名稱「** CPP ** SRCS」響鈴嗎? – Olaf
@πάνταῥεῖ:實際上,**有**錯誤... – Olaf