基于imx6的mupdf交叉编译

mupdf交叉编译(1.15.0源码)
1、解压压缩包;
2、编辑Makerules文件;修改如下:
......
# The following section has various cross compilation configurations.
#
# Invoke these as:
#      make OS=mingw32-cross
#
# This does rely on the generated directory being populated with the font files.
# On a unix-like system, run 'make generate' before doing the cross compile.
# On Windows, run 'nmake -f scripts\fontdump.nmake' in a Visual Studio command prompt.

ifeq "$(OS)" "wasm"
  OUT := build/wasm/$(build)
  CC = emcc
  CXX = em++
  HAVE_GLUT=no
  HAVE_X11=no
  HAVE_OBJCOPY=no
  HAVE_LIBCRYPTO=no
endif

#此处删除了编译器等选项,主要是在make之前,环境变量已经指定了CC、CXX、LD、AR等
ifeq "$(OS)" "imx6-cross"
  CROSSCOMPILE=yes
  HAVE_GLUT := no
endif

ifeq "$(OS)" "mingw64-cross"
  OUT := build/$(OS)/$(build)
  CC = x86_64-w64-mingw32-gcc
  CXX = x86_64-w64-mingw32-g++
  LD = x86_64-w64-mingw32-gcc
  AR = x86_64-w64-mingw32-ar
  WINDRES = x86_64-w64-mingw32-windres
  HAVE_WIN32=yes
endif
......

3、命令行使用make OS=imx6-cross编译。在编译到字体库时,会报错:***/hexdump.exe:Syntax error: word unexpected (expecting ")")(大致是这样), 主要原因是该可执行文件不能在当前环境下运 行,解决方法:把改可执行文件拷贝到板子上,然后手动调用 hexdump.exe -s ***/generated/resource/fonts/(droid/han/noto/sil/urw)/(*.otf.c/*.ttf.c/*.cff.c/*.ttc.c) ***/resource/fonts/(droid/han/noto/sil/urw)/(*.otf/*.ttf/*.cff/*.ttc)。hexdump.exe的作用是把字体转换为c文件。
4、把在板子上生成的字体库c文件全部拷贝到虚拟机。然后修改Makefile文件,注销下面四行:
#generated/%.cff.c : %.cff $(HEXDUMP_EXE) ; $(QUIET_GEN) $(MKTGTDIR) ; $(HEXDUMP_EXE) -s $@ $<
#generated/%.otf.c : %.otf $(HEXDUMP_EXE) ; $(QUIET_GEN) $(MKTGTDIR) ; $(HEXDUMP_EXE) -s $@ $<
#generated/%.ttf.c : %.ttf $(HEXDUMP_EXE) ; $(QUIET_GEN) $(MKTGTDIR) ; $(HEXDUMP_EXE) -s $@ $<
#generated/%.ttc.c : %.ttc $(HEXDUMP_EXE) ; $(QUIET_GEN) $(MKTGTDIR) ; $(HEXDUMP_EXE) -s $@ $<
5、完成上面的步骤后,基本上就可以编译出需要的静态库。但是在编译时也会报错:undefined reference to `pthread_join';undefined reference to `pthread_create'。这个是编译Main tool和viewers时出错,这个错误不影响镜头库的生成,主要两个库libmupdf.a和libmupdf-third.a

### 回答1: 安装imx6 Yocto交叉编译环境需要以下步骤: 1. 下载并安装交叉编译工具链,可以从官方网站或第三方网站下载。 2. 下载并解压imx6 Yocto源代码,可以从官方网站下载。 3. 进入源代码目录,执行“source setup-environment <build_dir>”命令来设置编译环境变量。 4. 配置编译选项,在conf文件中进行修改。 5. 执行“bitbake core-image-minimal”命令来开始编译。 6. 等待编译完成,将生成的镜像烧写到imx6设备上即可。 ### 回答2: IMX6 Yocto是一种基于Linux的嵌入式操作系统,它可以在各种嵌入式设备中运行,包括智能手机、平板电脑和其他嵌入式设备。IMX6 Yocto需要交叉编译才能在设备上运行,因此需要设置IMX6 Yocto交叉编译环境。 在安装IMX6 Yocto交叉编译环境之前,需要准备以下事项: 1. 一台运行Linux或Mac OS X的计算机; 2. 安装交叉编译工具链; 3. 安装Git; 4. 安装文本编辑器,如Vim或Nano。 接下来,我们将逐步介绍如何在Linux或Mac OS X上安装IMX6 Yocto交叉编译环境。 第一步:安装交叉编译工具链 IMX6 Yocto需要使用交叉编译工具链,可从官方网站下载。可以选择下载解压后放在/usr/local/目录下。然后将/bin/i686-pc-linux-gnu-路径添加到$PATH环境变量中,例如,在~/.bashrc文件中添加以下行: export PATH=$PATH:/usr/local/gcc-arm-none-eabi-10-2020-q4-major/bin/ 然后运行source ~/.bashrc或重新打开终端窗口以应用更改。 第二步:安装Git $ sudo apt-get update $ sudo apt-get install git 第三步:创建工作目录 创建一个新目录,例如imx6-yocto,并进入该目录: $ mkdir ~/imx6-yocto $ cd ~/imx6-yocto 第四步:下载IMX6 Yocto源码 使用Git从GitHub上克隆IMX6 Yocto存储库。你需要安装Git,假设下载地址为git@github.com:xxx/imx6-yocto.git: $ git clone git@github.com:xxx/imx6-yocto.git 等待下载过程结束。 第五步:配置Yocto Build Environment 进入imx6-yocto目录并执行以下命令: $ source setup-environment build 它将为您创建一个build目录和一些配置文件。如果在运行此命令时出现任何问题,请确保已正确安装所有依赖项,例如安装了python、perl、help2man等软件包。 第六步:构建Image文件 输入以下命令执行Image文件的构建: $ bitbake core-image-minimal 进程可能需要一段时间才能完成。执行成功将会在/tmp/deploy/images/imx6/中产生core-image-minimal-imx6qdl.sdcard.bz2压缩文件,即镜像文件。可以将镜像文件下载到SD卡中进行运行。 到此,IMX6 Yocto交叉编译环境的安装就完成了。如果出现错误,请检查依赖项是否正确安装,或在官方网站或社区论坛上查找解决方案。 ### 回答3: imx6是一款性能强大的嵌入式处理器,使用yocto构建嵌入式系统,可以有效优化系统性能,提高开发效率。而交叉编译则是嵌入式开发中必不可少的一环,可以在一台主机上编译出适用于目标平台的二进制文件。因此,安装imx6 yocto交叉编译环境是非常重要的。 安装imx6 yocto交叉编译环境的步骤如下: 1. 准备工作 在安装环境之前,需要准备以下环境: a. 一台可运行Linux系统的主机,推荐使用Ubuntu 16.04以上版本。 b. 下载并安装ARM架构交叉编译器,比如arm-linux-gnueabihf。 c. 下载并安装支持imx6交叉编译工具,比如imx6q-poky-linux-gcc。 d. 下载并安装yocto-sdk环境,这是一个类似于开发工具包的软件,提供了一些模块和库供开发者使用。 2. 安装库文件 在主机上安装所需要的库文件,这些文件包括g++,make,findutils和python。 sudo apt-get install g++ make findutils python 3. 配置环境变量 在主机上配置环境变量,以允许主机寻找交叉编译器和yocto-sdk环境。 export CROSS_COMPILE=arm-linux-gnueabihf export SDKTARGETSYSROOT=/path/to/sdk/sysroot 4. 配置yocto源码 下载并配置yocto源码,以便使用yocto构建嵌入式系统。 git clone git://git.yoctoproject.org/poky cd poky git checkout -b imx6 origin/imx6 5. 构建yocto环境 配置和构建yocto环境,以便构建所需的软件包。 source oe-init-build-env bitbake core-image-minimal 6. 交叉编译应用程序 使用交叉编译工具来交叉编译应用程序,以便在imx6上运行。 arm-poky-linux-gnueabi-gcc -o hello_world hello_world.c 7. 部署应用程序 将交叉编译生成的可执行文件部署到目标设备上,以便在设备上运行。 scp hello_world user@device:/path/to/hello_world 总之,以上就是安装imx6 yocto交叉编译环境的大致步骤。在实际开发中,可能会遇到各种问题,需要仔细检查每一个步骤,找出问题并解决。通过使用yocto构建嵌入式系统,可以大大提高开发效率,减少开发周期,让嵌入式开发更加简单和高效。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值