关于FFMPEG交叉编译错误解决办法及方案

GNU assembler not found, install/update gas-preprocessor

加上  --disable-asm 选项

完整Makefile解决方案示意如下:


CFLAGS = -g -O2
SOURCE_FOLDER_NAME = ffmpeg-4.2.2-full
CFLAGS += -Werror=incompatible-pointer-types -Werror=uninitialized -Werror-implicit-function-declaration

.PHONY: all install uninstall clean distclean

ECFLAGS  = -I$(ROOT_SOURCE_FOLDERINC_DIR)
ELDFLAGS = -L$(ROOT_SOURCE_FOLDERPREFIX_DIR)/lib -Wl,-rpath-link=$(ROOT_SOURCE_FOLDERPREFIX_DIR)/lib
CFLAGS  += $(CPPFLAGS)

PKG_CONFIG_PATH = $(ROOT_SOURCE_FOLDERPREFIX_DIR)/lib/pkgconfig
PKG_CONFIG_LIBDIR = $(PKG_CONFIG_PATH)
CXXFLAGS = $(CFLAGS)

export CPPFLAGS CFLAGS LDFLAGS CXXFLAGS LIBS LD_LIBRARY_PATH PKG_CONFIG_PATH PKG_CONFIG_LIBDIR
export AR AS CPP LD CXX CC RANLIB NM STRIP OBJCOPY READELF OBJDUMP

CONFIGURE_ARGS =                                                 \
  --disable-doc                                                  \
  --disable-asm                                                  \
  --enable-cross-compile                                         \
  --enable-debug=3                                               \
  --disable-stripping                                            \
  --target-os=linux                                              \
  --cross-prefix="$(CONFIG_CROSS_COMPILE)"                       \
  --cc="$(CC)"                                                   \
  --ar=$(AR)                                                     \
  --as=$(AS)                                                     \
  --nm=$(NM)                                                     \
  --arch=${ARCH}                                                 \
  --enable-shared                                                \
  --enable-pic                                                   \
  --prefix=$(ROOT_SOURCE_FOLDERPREFIX_DIR)$(SOURCE_FOLDER_NAME)  \
  --pkg-config=pkg-config

ifeq ($(CFG_ARCH),mips)
CONFIGURE_ARGS += --enable-mips32r2 --disable-mips32r5 --disable-mips32r6 --disable-mips64r2 --disable-mips64r6 --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable-msa --disable-msa2
else
CONFIGURE_ARGS += --disable-neon --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-armv8 --disable-vfp --disable-vfpv3 --disable-setend
endif

#CONFIGURE_ARGS += --disable-optimizations --extra-cflags=$(ECFLAGS) --extra-ldflags="$(ELDFLAGS)"
CODE_PATH = ffmpeg-new/$(SOURCE_FOLDER_NAME)

all:
ifneq (./$(SOURCE_FOLDER_NAME)/configure, $(wildcard ./$(SOURCE_FOLDER_NAME)/configure))
	@mkdir -p $(SOURCE_FOLDER_NAME);
	@tar -xjf ffmpeg-4.2.2.tar.bz2 -C $(SOURCE_FOLDER_NAME);
	@mv ./$(SOURCE_FOLDER_NAME)/ffmpeg-4.2.2/* $(SOURCE_FOLDER_NAME)/;
	@rm -rf ./$(SOURCE_FOLDER_NAME)/ffmpeg-4.2.2;
endif
	@echo "generate makefile for $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)";
ifeq ($(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done,$(wildcard $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done))
	@echo "$(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done";
else
	@echo "generate makefile for $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)";
	mkdir -p $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH);
ifeq ($(COPY_SOURCECODE),y)
	cp -arf $(ROOT_SOURCE_FOLDERDIR)/$(CODE_PATH) `dirname $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)`;
	cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); ./configure $(CONFIGURE_ARGS);
else
	cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); $(ROOT_SOURCE_FOLDERDIR)/$(CODE_PATH)/configure $(CONFIGURE_ARGS);
endif

	touch $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done;
endif
	cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); make -j$(j) V=1;
install:
	cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); make install
uninstall:
	cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); make uninstall

clean:
ifeq ($(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done,$(wildcard $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done))
	cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); make uninstall; make clean;
else
	echo "$(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH) have not makefile, do nothing";
endif

distclean:
ifeq ($(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done,$(wildcard $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done))
	cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); make distclean;
endif
	@rm -rf $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done
	@rm -rf $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)
	@rm -rf $(SOURCE_FOLDER_NAME)


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值