• mupdf arm 交叉编译记录


    老板催着要开发板上pdf转位图的库,mupdf看了一下应该合适,网上没有交叉编译的资料,可能是太简单了,这里做个mupdf交叉编译的记录。

    MuPDF is a Free and open source software library written in C that implements a PDF and XPS parsing and rendering engine. It is used primarily to render pages into bitmaps, but also provides support for other operations such as searching and listing the table of contents and hyperlinks.

    可以去官网http://mupdf.com/downloads/选择mupdf-*-source.tar.gz版本下载源码。

    将对应源码放在~/tmp目录下。解压,进入源码目录,看到源码下边有makefile和makerules,这里makefile是根据makerules来对源码进行配置和编译的。我们要交叉编译自然要设置交叉编译链。

    查看makerules如下:

    # Configuration for the Makefile
    
    OS ?= $(shell uname)
    OS := $(OS:MINGW%=MINGW)
    OS := $(OS:Windows_NT=MINGW)
    OS := $(OS:Darwin=MACOS)
    
    # The following section is an example of how to simply do cross-compilation
    # using these Makefiles. It builds for a beagleboard running ARM linux,
    # compiling on windows with the CodeSourcery G++ compilers.
    # Invoke this as:
    #      make OS=beagle-cross build=release
    # This does rely on the generated directory being populated with the cmap
    # files etc first. Either:
    #   1) do 'make generate' first (this relies on you having an appropriate host
    #   base C compiler set up - such as you would have on unix or in windows
    #   cygwin)
    #   2) do a non cross compile build (e.g. windows in MSVC) first.
    #   3) download the generated files from mupdf.com.
    
    ifeq "$(OS)" "beagle-cross"
    CC = arm-none-linux-gnueabi-gcc
    LD = arm-none-linux-gnueabi-gcc
    AR = arm-none-linux-gnueabi-ar
    CFLAGS += -O3 -mfpu=neon -mcpu=cortex-a8 -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant
    CROSSCOMPILE=yes
    endif

    这里开始通过OS的值来确定编译链,然后中见的注释部分提示了如何设置OS的值来编译mupdf的源码,这里可以看到我们要用的交叉编译链是arm-none-linux-gnueabi-*,但是我的编译链是arm-arago-linux-gnueabi-*,因此修改之,将ifeq "$(OS)" "beagle-cross" 下边的三个none全部改为改为arago即可。

    ifeq "$(OS)" "beagle-cross"
    CC = arm-arago-linux-gnueabi-gcc
    LD = arm-arago-linux-gnueabi-gcc
    AR = arm-arago-linux-gnueabi-ar

    执行

    make OS=beagle-cross build=release

    提示错误,重新看下makerules里边的注释,要求先执行make generate后,因此
    make generate
    make OS=beagle-cross build=release

    静等即可在./bulid/release目录下边看到编译好的libmupdf.a
  • 相关阅读:
    两个服务器上SQLServer实例之间配置Service Broker示例
    处理数据库镜像问题的一个案例
    oracel修改密码
    Oracle报错
    如何创建ORACLE大文件表空间
    创建、删除表空间
    oracle中新建用户和赋予权限
    非常全的VsCode快捷键
    VS Code常用快捷键
    启动Weblogic问题集锦
  • 原文地址:https://www.cnblogs.com/pang1567/p/4083740.html
Copyright © 2020-2023  润新知