C和CPP联合交叉编译,出现arm-himix200-linux-g++:linker input file unused because linking not done 提示

最近在用海思的makefile编译一些库,在遇到C和CPP联合混编的时候出现一些问题,以此做个记录

Makefile如下:


SMP_SRCS := $(shell find ./ -name "*.c")
SMP_SRCPPS := $(shell find ./ -name "*.cpp")

OBJS  := $(SMP_SRCS:%.c=%.o)
CPPOBJS  := $(SMP_SRCPPS:%.cpp=%.o)
#新增链接头文件,使用-I参数
INC_FLAGS := -I$(LOCAL_PATH)/src
#编译.so需要用到-fPIC -shared编译选项
CFLAGS += -fPIC -shared
CFLAGS += $(COMM_INC)

#链接第三方库
LFLAG := -llog 
#指定第三方库的路径
LFLAG += -L$(LIB_PATH)

TARGET := libxxx.so
TARGET_PATH:= $(LIB_PATH)
CFLAGS += $(INC_FLAGS)

.PHONY : clean all

all: $(TARGET)

$(TARGET):$(COMM_OBJ) $(OBJS) $(CPPOBJS)
	@$(CPP) $(CFLAGS) -lpthread -lm -o $(TARGET_PATH)/$@ $^ -Wl,--start-group $(LFLAG) $(LIBS)  -Wl,--end-group

#$(CPPOBJS):%.o:%.cpp
#	@$(CPP) -c $< $(CFLAGS) -lpthread -lm -o $@ -Wl,--start-group $(LFLAG) $(LIBS)  -Wl,--end-group
#这里指定cpp文件用arm-himix200-linux-g++去编译,但是后面不需要跟LFLAG和LIBS,所以去掉就正常了
$(CPPOBJS):%.o:%.cpp
	@$(CPP) -c $< $(CFLAGS) -lpthread -lm -o $@
clean:
	@rm -f $(TARGET_PATH)/$(TARGET)
	@rm -f $(OBJS)
	@rm -f $(CPPOBJS)
	@rm -f $(COMM_OBJ)

以上CC和CPP别的地方已经定义过了,相关的变量也是定义过了,就不全部贴出来了。另外虽然TARGET下用的也是CPP,但是实际编译里面的.c文件还是用的gcc工具

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值