移植libjpeg

step1:下载并解压jpeg源代码包

step2:
 #cd ./jpeg-6b
 #./configure --prefix=/home/jpeg_arm --exec-prefix=/home/jpeg_arm --enable-shared --enable-static
 下面分别介绍这几个参数的作用:
 
 --prefix=/home/jpeg_arm/include : 执行make install 后,会将与体系无关的文件拷贝到此目录下,具体如下:
 /home/jpeg_arm_include.....................................
        |
       +---include........................................
             |
             ---jconfig.h
             |
             ---jerror.h
             |
             ---jmorecfg.h
             |
             ---jpeglib.h
       +---man............................................
             |
            +---man1.......................................
                  |
                  ---cjeg.1
                  |
                  ---djpeg.1
                  |
                  ---jpegtran.1
                  |
                  ---rdjpgcom.1
                  |
                  ---wrjpgcom.1
               
 --exec-prefix=/home/jpeg_arm/lib : 执行make install 后,会将与体系无关的文件拷贝到此目录下,即将一些可执行程序、动态链接库和静态链接库拷贝到此目录的相应目录下,具体如下:
 /home/jpeg_arm_lib........................................
        |
       +---bin............................................
             |
             ---cjeg
             |
             ---djpeg
             |
             ---jpegtran
             |
             ---rdjpgcom
             |
             ---wrjpgcom
       +---lib...........................................
             |
             ---libjpeg.la
             |
             ---libjpeg.so 
             |
             ---libjpeg.so.62
             |
             ---libjpeg.so.62.0.0 
           
 --enable-shared : 用GNU libtool编译成动态链接库 。下面分别对应有无此参数所生成的Makefile的比较:
       ------------------------------------------------------------------------------------------- 
              无--enable-shared参数             |               有--enable-shared参数
       ------------------------------------------------------------------------------------------- 
                          LIBTOOL =                   |            LIBTOOL = ./libtool
       -------------------------------------------------------------------------------------------
                           O = o  A = a                 |            O = lo    A = la
       -------------------------------------------------------------------------------------------
                          LN= $(CC)                    |      LN= $(LIBTOOL) --mode=link $(CC)
       -------------------------------------------------------------------------------------------
    INSTALL_PROGRAM= ${INSTALL}     |  INSTALL_PROGRAM= $(LIBTOOL) --mode=install ${INSTALL}
        INSTALL_LIB= ${INSTALL} -m 644  |  INSTALL_LIB= $(LIBTOOL) --mode=install ${INSTALL}
      -------------------------------------------------------------------------------------------------------
           无参数:

  #  $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c $(srcdir)/$*.c
           有参数:
              .c.lo:
              $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c $(srcdir)/$*.c
   ----------------------------------------------------------------------------------------------------------
          无参数:
             install: cjpeg djpeg jpegtran rdjpgcom wrjpgcom
          有参数: 
             install: cjpeg djpeg jpegtran rdjpgcom wrjpgcom install-lib
    -----------------------------------------------------------------------------------------------------------

step3:修改生成的Makefile文件:
       # The name of your C compiler:
       CC= gcc  该成  CC=arm-linux-gcc (根据你自己交叉编译器的位置修改)
       # library (.a) file creation command
       AR= ar rc 该成  AR=arm-linux-ar rc  (同上)
       # second step in .a creation (use "touch" if not needed)
       AR2= ranlib 该成  AR2=arm-linux-/ranlib (同上)

step4:sudo mkdir /home/jpeg_arm

           sudo mkdir /home/jpeg_arm/lib

          sudo mkdir /home/jpeg_arm/include

          sudo mkdir /home/jpeg_arm/man

          sudo mkdir /home/jpeg_arm/lib/man/man1

step5:#make
      #sudo make install
      这样JPEG库就交叉编译成功了,相应的库和头文件都在/home/jpeg_arm/lib和/home/jpeg_arm/include下了!

在编写应用程序在编译时记得加上 -ljpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
libjpeg-turbo移植到单片机是一个相对复杂的任务,需要解决许多技术挑战。libjpeg-turbo是一个开源的JPEG图像解压缩库,它提供了高效的图像解码和编码功能。为了将其移植到单片机平台,需要考虑以下几个方面。 首先,单片机通常资源有限,存储和计算能力较弱。因此,需要对libjpeg-turbo进行裁剪和优化,以适应单片机的硬件限制。这可能包括删除一些不必要的功能或减小库的规模,以减少内存消耗和代码大小。 其次,单片机通常使用特定的嵌入式操作系统或裸机环境。需要修改源代码,使其与目标单片机平台兼容,并适应特定的操作系统接口或裸机API。 第三,JPEG图像编解码是一个计算密集型任务,需要大量的运算和存储空间。单片机上的处理能力和RAM容量有限,因此需要一些创新的方法来缓解这些限制。例如,可以通过减少图像分辨率、调整图像质量参数或使用流式处理等技术来优化JPEG图像压缩和解压缩过程。 最后,由于单片机通常没有专门的图像输入和输出接口,还需要解决图像数据的传输和存储问题。可能需要使用外部存储器(如SD卡)来存储JPEG图像,并通过串行通信接口(如UART)将图像数据传输到单片机进行处理。 总体而言,将libjpeg-turbo移植到单片机需要综合考虑硬件限制、软件适配和资源优化等因素。这需要有经验丰富的开发人员,对单片机的架构和嵌入式系统开发有深入的了解。但是,一旦成功移植,单片机就能够快速、有效地处理JPEG图像,为特定应用场景提供高质量的图像处理能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值