交叉编译mupdf 在ARM板上读取pdf

基于imx6的muPdf交叉编译连接 : https://blog.csdn.net/yinshengbing2010/article/details/91038095
                              
              https://blog.csdn.net/k_wang_/article/details/82870401    // 这个例子改吧改吧好使
交叉工具链路径 :
  CC = /home/arm-20210720/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
  CXX = /home/arm-20210720/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
  LD = /home/arm-20210720/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
  AR = /home/arm-20210720/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar
移植过程 :( 注意版本 )
1. 使用的 mupdf-1.15.0-source.tar.gz  版本, 下载地址 :  https://www.mupdf.com/downloads/index.html 

2. 源码包到Ubuntu 下解压 :  进入源码路径  mupdf-1.15.0-source 中  修改编译依赖的文件 Makerules 修改:

# Configuration for the Makefile

OS := $(shell uname)
OS := $(OS:MINGW%=MINGW)
OS := $(OS:MSYS%=MINGW)
OS := $(OS:Windows_NT=MINGW)
OS := $(OS:Darwin=MACOS)

ifeq ($(findstring -fembed-bitcode,$(XCFLAGS)),)
  # clang does not support these in combination with -fembed-bitcode
  CFLAGS += -ffunction-sections -fdata-sections
endif

ifeq ($(OS),MACOS)
  LDREMOVEUNREACH := -Wl,-dead_strip
else
  LDREMOVEUNREACH := -Wl,--gc-sections
endif

SANITIZE_FLAGS += -fsanitize=address
SANITIZE_FLAGS += -fsanitize=leak

ifeq ($(build),debug)
  CFLAGS += -pipe -g
  LDFLAGS += -g
else ifeq ($(build),release)
  CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer
  LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s
else ifeq ($(build),small)
  CFLAGS += -pipe -Os -DNDEBUG -fomit-frame-pointer
  LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s
else ifeq ($(build),valgrind)
  CFLAGS += -pipe -O2 -DNDEBUG -DPACIFY_VALGRIND -fno-omit-frame-pointer
  LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s
else ifeq ($(build),sanitize)
  CFLAGS += -pipe -g -fno-omit-frame-pointer $(SANITIZE_FLAGS)
  LDFLAGS += -g $(SANITIZE_FLAGS)
else ifeq ($(build),sanitize-release)
  CFLAGS += -pipe -O2 -DNDEBUG -fno-omit-frame-pointer $(SANITIZE_FLAGS)
  LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s $(SANITIZE_FLAGS)
else ifeq ($(build),profile)
  CFLAGS += -pipe -O2 -DNDEBUG -pg
  LDFLAGS += -pg
else ifeq ($(build),coverage)
  CFLAGS += -pipe -g -pg -fprofile-arcs -ftest-coverage
  LIBS += -lgcov
else ifeq ($(build),native)
  CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer -march=native
  LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s
else ifeq ($(build),memento)
  CFLAGS += -pipe -g -DMEMENTO
  LDFLAGS += -g -d -rdynamic
  ifneq ($(HAVE_LIBDL),no)
    CFLAGS += -DHAVE_LIBDL
    LIBS += -ldl
  endif
else ifeq ($(build),gperf)
  CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer -DGPERF
  LIBS += -lprofiler
else
  $(error unknown build setting: '$(build)')
endif

# Default system libraries
SYS_FREETYPE_LIBS := -lfreetype2
SYS_HARFBUZZ_LIBS := -lharfbuzz
SYS_JBIG2DEC_LIBS := -ljbig2dec
SYS_JPEGXR_LIBS := -ljpegxr
SYS_LCMS2_LIBS := -llcms2-art
SYS_LIBJPEG_LIBS := -ljpeg
SYS_MUJS_LIBS := -lmujs
SYS_OPENJPEG_LIBS := -lopenjp2
SYS_ZLIB_LIBS := -lz

ifeq ($(OS),MINGW)
  WINDRES := windres
  HAVE_WIN32 := yes

else ifeq ($(OS),MACOS)
  HAVE_GLUT := yes
  SYS_GLUT_CFLAGS := -Wno-deprecated-declarations
  SYS_GLUT_LIBS := -framework GLUT -framework OpenGL
  CC = xcrun cc
  AR = xcrun ar
  LD = xcrun ld
  RANLIB = xcrun ranlib

else ifeq ($(OS),Linux)
  HAVE_OBJCOPY := yes

  ifeq ($(shell pkg-config --exists freetype2 && echo yes),yes)
    SYS_FREETYPE_CFLAGS := $(shell pkg-config --cflags freetype2)
    SYS_FREETYPE_LIBS := $(shell pkg-config --libs freetype2)
  endif
  ife

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值