어쩌다 보니 한 폴더에 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*