与图片相关的几个库的编译
背景:
我的开发板自带的编译器是经过开发商修改的,原来已经带有了libjpeg、libpng库了。现在想换个新的版本。最近想研究jpeg文件,想在开发板的屏幕上显示出来,于是在网上找了点资料,不过绝大资料都是6b这个版本的,而这个版本是1998年发布的,至今仍在使用。截至本文发表时,最新版本是8c,2011年1月发布的。同时,也顺便将png、gif两个库一起编译了。我是个喜欢折腾的人,自从大三买了开发板,简单地写了个点灯的裸机程序后,就入手移植系统了,后来以移植u-boot,原因很简单,不想用人家已经做好的东西,自己弄的东西,对原理性,了解会稍微深入一些。——这些事情是仁者见仁,智者见智了。
环境假设:
arm-linux-gcc 4.3.2
编译临时目录:/home/latelee/my2440/lib_build
编译后库及头文件目录:/home/latelee/my2440/lib_pic/
如果程序使用到这些库,则在编译时需要使用这些目录。当然,如果不想这些麻烦,就可以将头文件与库放到交叉编译器对应的目录,笔者的交叉编译器目录如下:
./arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib
实际使用:
将生成的库(即.so文件及其链接文件)放到开发板根文件系统对应目录,如/lib、/usr/lib等。如果是NFS,可以直接复制,不过要注意链接文件,建议使用cp -a命令。我是打包压缩通过串口(rz)发送到开发板上的,也可以用U盘,等等。
1、zlib
$ cd zlib-1.2.5
配置:
修改生成的Makefile:
将gcc修改为arm-linux-gcc
另外也修改:
RANLIB=arm-linux-ranlib
编译及安装:
$ make install
2、libjpeg
$ cd jpeg-8c
配置、编译、安装:
$ make
$ make install
在lib_pic目录生成bin include lib share等等目录,bin目录有许多相关的程序,不过还没有用过,不知有什么作用。share目录是放手册的,就是平时在Linux下输入man xxx那种手册。我们关心的是include和lib目录,前者放头文件,后者放库文件。
(--preifx不能使用“~”)
如果要使用libjpeg库,就需要在编译时添加-I和-L选项。下面是一个例子:
3、libpng:
libpng:
$ cd libpng-1.5.4
$ ./configure --prefix=/home/latelee/my2440/lib_pic/ --host=arm-linux CC=arm-linux-gcc --with-zlib-prefix=/home/latelee/my2440/lib_pic/
$ make
$ make install
生成的目录跟libjpeg相似,不过实际的头文件在include/libpng15,include下的只是链接文件,为方便以见,将链接文件删除,复制libpng15目录的头文件到include目录
使用例子:
4、libgif:
$ cd giflib-4.1.6
$ ./configure --prefix=/home/latelee/my2440/lib_pic/ --host=arm-linux CC=arm-linux-gcc
$ make
$ make install
本文只是简单做一些笔记,没有涉及深入研究库的使用。因为本文题目就是“编译笔记”。关于这几个库的下载,请用google输入库的名称,就能找到了。开源项目一般会有主页,或者是独立的域名,或者是在sourceforge上。进入主页时,会在显示的下载提示,或者是“Download”、或者是“the source code is here”,……,等等。
更新:
写此文一段时间后,只是测试了前三个库,libgif还没有测试。后面写的程序都是用这次编译的库的。
与图片相关的几个库的编译相关推荐
- svg上传服务器无法显示,让WordPress支持上传SVG格式图片并显示在媒体库中的方法...
让WordPress支持上传SVG格式图片并显示在媒体库中的方法 发布时间:2020-12-11 14:18:12 来源:亿速云 阅读:167 作者:小新 这篇文章将为大家详细讲解有关让WordPre ...
- 图片读取器和皮肤库设计
图片读取器和皮肤库设计 无论是图片读取器还是皮肤库设计,其实只是点到为止,没有深入做出很好的视觉效果,请见谅. 一.实验目的 1.结合实例,熟练分析并绘制UML类图: 2.熟练使用java实现两种常见 ...
- Latex合并及插入图片相关问题
latex图片并排 1.并排摆放,共享标题 \begin{figure}[htbp] \centering \includegraphics{left} \includegraphics{right} ...
- PHP用gd库给图片添加水印,php用GD库给图片添加水印
php用GD库给图片添加文字水印,整个代码比较简单,DEMO如下: /*打开图片*/ //1.配置图片路径 $src = "aeroplane.jpg"; //2.获取图片信息 $ ...
- 图像处理---《在图片上打印文字 FreeType库》
图像处理---<在图片上打印文字 FreeType库> 目的:想在处理之后的图像上打印输出结果. 方法: (1)只在图像上打印 数字.字母的话: 1.Mat ...
- 【Android】RecycleView简单仿漫画APP图片相关样式
真的真的想不到起什么标题好了,这次的内容真的是太简单了,没有什么挑战性,一天以内就完成了.最近在学kotlin,也会有一份kotlin的代码,鉴于很多人都是从java开始进行android开发的,ko ...
- 电机控制驱动相关的PCB元件库带3D模型
电机控制驱动相关的PCB元件库带3D模型 电机控制和驱动部分的电路板制作过程中,需要各种引脚接口,光耦隔离芯片,智能功率芯片IPM,各种开关按键,电容,发光二极管以及显示器等必要的器件,小编有轻微的强 ...
- Android 悬浮窗,绝对是目前相关悬浮窗开源库最完美的适配方案
PerfectFloatWindow 项目地址:Alonsol/PerfectFloatWindow 简介: android 全局悬浮窗,目前已经适配华为,小米,vivo,oppo,一加,三星,魅族, ...
- latex 图片相关设置
latex 图片相关设置 基本格式: \begin{figure}[图片位置设置] 图片格式(左对齐,居中,右对齐等) \includegraphics[图片大小]{图片存放位置} \twofigur ...
最新文章
- 推荐一个.NET下转Json的利器,FastJson
- 聊聊JS与设计模式之(工厂Factory)篇------(麦当劳的故事)
- 等价类划分方法的应用
- 14 篇论文为你呈现「迁移学习」研究全貌 | 论文集精选 #04
- 【练习】2021下半年数据结构刷题笔记和总结 (三)栈 队列 链表 枚举算法
- OpenGL point shadow点阴影的实例
- cpu封装技术 cpu知识 zol术语
- 删除电脑中的mysql数据库吗_【数据库】怎么彻底删除mysql服务?
- tomcat.exe java home,tomcat.exe启动和startup.bat启动的不同
- android bundle传递参数,android – 使用bundle将数据从一个活动传递...
- 3.4_activity_selection_活动选择问题
- k8s学习:部署 PHP + Redis 留言薄
- 捕获input 文本框内容改变的事件(onchange,onblur,onPropertyChange比较)
- php抓取网络电视源,电视直播源抓取工具箱
- 如何免费下载DEM数据
- P5960 【模板】差分约束算法 · spfa
- mysql按年级班级排序_一个sql语句的问题,按照如何按照年纪班级科目显示名次...
- 三维动画与企业宣传片的制作方案
- 爱普生Epson Stylus Photo P50 打印机驱动
- 安全环保专题培训考试题