vendor/sprd/proprietories-source/sprd_codecs/xvid//src/portab.h:134:6: error: You are trying to compile Xvid without defining address bus size.
# error You are trying to compile Xvid without defining address bus size.
^
vendor/sprd/proprietories-source/sprd_codecs/xvid//src/portab.h:372:10: error: You are trying to compile Xvid without defining the architecture type.
# error You are trying to compile Xvid without defining the architecture type.
^
solution:add ---LOCAL_CFLAGS += -DARCH_IS_32BIT -DARCH_IS_GENERIC -Wno-int-to-pointer-cast -Wno-implicit-function-declaration --std=c99
to .mk document
reason:portab.h 配置信息不完善ARCH_IS_32BIT、ARCH_IS_GENERIC,需要將這些信息寫入.mk文件中
二、
vendor/sprd/proprietories-source/sprd_codecs/xvid/examples/xvid_encraw.c:57:10: fatal error: 'xvid.h' file not found
#include "xvid.h"
solution :將.mk文件重新命名,放在了統一的路徑下面,在整體的Android.mk文件中加入include $(LOCAL_PATH)/xvid.mk、include $(LOCAL_PATH)/xvid_encraw.mk
重新寫.mk文件中頭文件和源文件的路徑
XVID_PATH := xvid/
...
LOCAL_SRC_FILES := \
$(XVID_PATH)/examples/xvid_encraw.c \
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/$(XVID_PATH)/src \
編譯通過
三、
書寫一個.mk文件需要修改的地方
xvid_encraw.mk
include $(CLEAR_VARS)
XVID_PATH := xvid/ //方便寫路徑
LOCAL_MODULE := utest_sw_xvidenc //生成文件的名稱
LOCAL_MODULE_TAGS := debug
LOCAL_CFLAGS := -fno-strict-aliasing -Wno-date-time -D_VSP_LINUX_ -D_VSP_
LOCAL_CFLAGS += -DARCH_IS_32BIT -DARCH_IS_GENERIC -Wno-int-to-pointer-cast -Wno-implicit-function-declaration --std=c99 //文件需要進行的配置信息,要包含的define信息
LOCAL_PRELINK_MODULE := false
LOCAL_ARM_MODE := arm
LOCAL_SRC_FILES := \
$(XVID_PATH)/examples/xvid_encraw.c \ //源文件路徑和文件名稱
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/$(XVID_PATH)/src \ //頭文件路徑
LOCAL_SHARED_LIBRARIES := libomx_xvid_sw //編譯這個源文件需要調用的庫的名稱
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
LOCAL_PROPRIETARY_MODULE := true
include $(BUILD_EXECUTABLE)
Android.mk
include $(CLEAR_VARS)
ifeq ($(strip $(TARGET_VSP_PLATFORM)),whale)
include $(LOCAL_PATH)/h265dec_hw.mk
include $(LOCAL_PATH)/h265enc_hw.mk
include $(LOCAL_PATH)/vspenc_hw.mk
endif
ifeq ($(strip $(TARGET_VSP_PLATFORM)),iwhale2)
include $(LOCAL_PATH)/h265dec_hw.mk
include $(LOCAL_PATH)/h265enc_hw.mk
include $(LOCAL_PATH)/vp9dec_hw.mk
include $(LOCAL_PATH)/vp9enc_hw.mk
endif
include $(LOCAL_PATH)/h264dec_hw.mk
include $(LOCAL_PATH)/h264dec_sw.mk
include $(LOCAL_PATH)/h264enc_hw.mk
include $(LOCAL_PATH)/m4vh263dec_hw.mk
include $(LOCAL_PATH)/m4vh263dec_sw.mk
include $(LOCAL_PATH)/m4vh263enc_hw.mk
include $(LOCAL_PATH)/vpxdec_hw.mk
include $(LOCAL_PATH)/m4vh263enc_sw.mk
include $(LOCAL_PATH)/xvid.mk
include $(LOCAL_PATH)/xvid_encraw.mk
//添加這兩個文件,編譯的過程中就會調用這兩個新寫好的mk文件來處理。
include $(call all-makefiles-under,$(LOCAL_PATH))
四、編譯過程中遇見的類型檢查報錯問題處理
更改編譯的環境,le不能通過,原因暫時不明~