어쩌다 보니 한 폴더에 c 랑 c++ file 이 모두 쓰이게 되었습니다.
아래와 같이 makefile 을 작성하였는데요
오브젝트 파일들은 정상적으로 잘 나오고 있습니다.
그런데 문제는 TARGET = testapp 이 생성이 되지 않고 있습니다.
c 와 c++ 각자에 대한 오브젝트는 생성이 되었는데
TARGET = testapp 결과물이 생성되지 않습니다.
c 로 빌드된 object 와 c++ 로 빌드된 object 를 합치는 무언가가 필요할것 같은데 뭔지를 모르겠네요
도움 부탁드리겠습니다.
# Linux Makefile.
SHELL = /bin/sh
#### Start of system configuration section. ####
srcdir = .
TOP_DIR = $(shell pwd)/../../
include ../../configs.mk
# 링크할 때 필요한 라이브러리를 추가한다.
LIBS +=
# 링크할 때 필요한 라이브러리를 추가한다.
ifeq ($(ARCH),x86)
LIBS += -lpng -lz -lm -lX11
LIBS += -ljpeg
else
LIBS += -lpngarm -lz -lm -ldl
LIBS += -ljpegarm
endif
# 컴파일시에 필요한 define을 추가한다.
#DEFS +=
ifeq ($(ARCH),x86)
DEFS += -DX86=1
else
DEFS += -DX86=0
endif
# 컴파일시에 필요한 define을 추가한다.
ifeq ($(ARCH),x86)
DEFS += -DTEST_IN_HOST
else
DEFS +=
endif
D_DEFINE= -D_UNICODE
D_DEFINE+= -D_IS_TARGET
DEFS += $(D_DEFINE)
LIBS += -L. -lhmi
LIBS += -lpngarm -lz -lm -ldl
LIBS += -ljpegarm
# static 링크시에 필요한 각종 옵션을 추가한다.
STATIC +=
#-g $(INC) 등 컴파일에 필요한 각종 옵션을 추가한다.
CFLAGS +=
ifeq ($(MIB_UNIT_INTEG_TEST),yes)
CFLAGS += -fprofile-arcs -ftest-coverage
endif
# 링크시에 필요한 각종 옵션을 추가한다.
LDFLAGS +=
# 목적 파일의 이름을 적는다.
OBJS += test.o
CPPOBJS += maindummy.o
# 링크 후에 생성될 실행 파일의 이름을 적는다.
TARGET = testapp
all : $(TARGET)
$(TARGET) : $(OBJS) $(CPPOBJS)
$(CC) $(CFLAGS) $(STATIC) -o $@ $(OBJS) $(LIBS)
$(CXX) $(CFLAGS) $(STATIC) -o $@ $(CPPOBJS) $(LIBS)
$(CP) -rf $@ $(TOP_BIN)/$(APP_DIR_STATIC)
mv $@ $@.static
$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)
$(CXX) $(CFLAGS) -o $@ $(CPPOBJS) $(LIBS)
$(CP) -rf $@ $(TOP_BIN)/$(APP_DIR)
install:
@cp -a $(TARGET) $(ROOTFS_DIR)/$(APP_DIR)
@cp -a $(TARGET).static $(ROOTFS_DIR)/$(APP_DIR_STATIC)/$(TARGET)
showinfo :
@echo 'MODEL = $(MODEL)'
@echo 'MODEL_NAME = $(MODEL_NAME)'
clean :
rm -rf $(OBJS) *.o $(MCU_DIR)/*.o $(TARGET) $(TARGET).static core *.g* $(MCU_DIR)/*.g*