热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux下交叉编译libjpeg库并移植到开发板上

  最近嵌入式比赛用的HiveBoard开发板,项目需要移植libjpeg库以实现bmp图片压缩成jpg的功能。ubuntu下首先下载源文件jpegsrc.v6b.tar.gz,解

   最近嵌入式比赛用的HiveBoard开发板,项目需要移植libjpeg库以实现bmp图片压缩成jpg的功能。ubuntu下首先下载源文件jpegsrc.v6b.tar.gz,解压之后./configure 然后make  发现提示缺少libtool,虽然可以另外下载libtool再自己编译安装,但总感觉有点麻烦。看到了一个帖子用的是官网http://www.ijg.org/ 的最新版jpegsrc.v9a.tar.gz ,似乎没提到有这个问题,于是又下载了个jpeg-9a版本。

    然后解压,先在ubuntu下试试效果。 

    ./configure

    make

    make install

这下没报错了,cd 到 usr/local/lib下面,发现已经生成了共享库文件libjpeg.so, libjpeg.so.9, libjpeg.so.9.1.0

运行格式转换测试程序./test.out 提示找不到库,于是把生成的几个库文件拷贝到/usr/lib下,再运行./test.out,成功转换bmp为jpg、


    接下来交叉编译

    重新解压一个jpeg-9a,

    ./configure CC=unicore32-linux-gcc LD=unicore32-linux-ld –host=arm-linux –prefix=/root/Desktop/jpeglib –enable-shared –enable-static

    make

    make install

参数解释:

CCLD均设置为交叉编译器中的对应名称,如果设置后无法识别的话,可以换成交叉编译工具的绝对路径

–host参数要与交叉编译器名称对应,我用的交叉编译器是unicore32-linux,但经测试发现此名称无法识别,因此改为了arm交叉编译通用名称arm-linux(注意:此参数一定要加,否则交叉编译很可能不成功

–prefix参数是强制设定install之后生成文件的存放目录,加上这个参数有利于将输出文件统一拷贝到开发板上

–enable-shared参数是设置生成的lib库为共享库,即生成***.so, ***.so.x文件

–enable-static参数是设置生成的lib库为静态库,即生成***.a文件(注意:如果不需要在项目中加入静态库的话,此参数可以不加

交叉编译成功后,会发现在桌面上生成了jpeglib文件夹,进入lib子文件夹,把libjpeg.so, libjpeg.so.9, libjpeg.so.9.1.0文件拷贝到开发板中的usr/lib下面即可使用。


参考资料:

http://www.cnitblog.com/zouzheng/archive/2006/07/28/14320.html

http://blog.csdn.net/wwwxxlby520/article/details/4384224

http://blog.csdn.net/ypist/article/details/8190966

http://blog.csdn.net/a593796769/article/details/9211747

http://blog.csdn.net/yyplc/article/details/10291429

http://www.cnblogs.com/AlphaDu/articles/1233213.html

http://bbs.csdn.net/topics/390131342

http://blog.chinaunix.net/uid-20846214-id-2413068.html

http://blog.csdn.net/eilianlau/article/details/7093202

===============================================

搬运自我的百度空间

原文发布时间:2014-05-14 18:16


推荐阅读
  • tcpdump 4.5.1 crash 深入分析
    tcpdump 4.5.1 crash 深入分析 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • 【前端工具】nodejs+npm+vue 安装(windows)
    预备先看看这几个是干嘛的,相互的关系是啥。nodejs是语言,类比到php。npm是个包管理,类比到composer。vue是个框架&# ... [详细]
  • 原文地址http://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/最开始时 ... [详细]
  • C#设计模式之八装饰模式(Decorator Pattern)【结构型】
    一、引言今天我们要讲【结构型】设计模式的第三个模式,该模式是【装饰模式】,英文名称:DecoratorPattern。我第一次看到这个名称想到的是另外一个词语“装修”,我就说说我对“装修”的理 ... [详细]
  • 【技术分享】一个 ELF 蠕虫分析
    【技术分享】一个 ELF 蠕虫分析 ... [详细]
  • uboot与linux驱动1.uboot本身是裸机程序(1)在裸机中本来是没有驱动概念的(狭义的驱动概念是指在操作系统中用来具体操控硬 ... [详细]
author-avatar
和老师一起喝咖啡_171
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有