dvsdk encode 修改Makefile中编译器

想把dvsdk encode代码和jrtplib联系起来,但是dvsdk是C语言,jrtplib是C++的,所以不修改Makefile就会出现错误

expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’

这是因为用gcc或者arm-linux-gcc编译了c++的程序

怎样修改encode代码中的交叉编译器呢?

解决:

打开encode下的Makefile找到编译器的地方

C_FLAGS += -Wall -g
LD_FLAGS += -lpthread -lpng -ljpeg -lfreetype -lasound -ljrtp
COMPILE.c = $(VERBOSE) $(MVTOOL_PREFIX)g++ $(C_FLAGS) $(CPP_FLAGS) -c
LINK.c = $(VERBOSE) $(MVTOOL_PREFIX)g++ $(LD_FLAGS)

修改成如下:

C_FLAGS += -Wall -g
#change by zjk
LD_FLAGS += -lpthread -lpng -ljpeg -lfreetype -lasound -ljrtp    //这里添加jrtplib的静态链接库
#change by zjk
COMPILE.c = $(VERBOSE) $(MVTOOL_PREFIX)g++ $(C_FLAGS) $(CPP_FLAGS) -c  //编译的地方修改成g++
LINK.c = $(VERBOSE) $(MVTOOL_PREFIX)g++ $(LD_FLAGS)    //连接的地方修改成g++

Makefile中变量很多,看起来很复杂的样子,但是细细读起来发现只是代换变量挺麻烦的,条理还是很明确的


你可能感兴趣的:(encode,makefile,编译器,DVSDK,DM365)