一、下载源码 二、解压缩
http://www.ijg.org/files/jpegsr9a.zip
unzip ...
cd jpeg-9a
三、处理文件
chmod a+x configure
如出现以下问题按下面步骤处理:
2.bash:./configure /bin/sh^M: bad interpreter: No such file or directory
查了半天才知道,原来configure文件是dos格式的,怎么转换成unix格式的呢?
这就要用到vi的强大功能了:
vi configure
:set ff=unix
:wq
然后再./configure
set ff=unix : 告诉 vi 编辑器,使用unix换行符
造成这个原因是:window换行与linux换行符不一样:
----dos(换行符为\r\n) mac(换行为\r)linux(换行为\n)
3.configure: error: cannot run /bin/sh ./config.sub解决办法
libtool
libtool-ltdl
libtool-ltdl-devel
否则则安装:
yum install libtool
yum install libtool-ltdl
yum install libtool-ltdl-devel
安装编译依赖包
yum install nasm autoreconf
执行命令:
autoreconf -fiv
mkdir release 创建 release 文件夹
然后 ./configure --prefix=$(pwd)/release --enable-shared=no
--prefix参数是强制设定install之后生成文件的存放目录,加上这个参数有利于将输出文件统一拷贝到开发板上
--enable-shared参数是设置生成的lib库为共享库,即生成***.so, ***.so.x文件
--enable-static参数是设置生成的lib库为静态库,即生成***.a文件(注意:如果不需要在项目中加入静态库的话,此参数可以不加)
5. 遇到Makefile:642: .deps/jmemnobs.Plo: No such file or directory 一大堆
可能是config.sub 带的 在Makefile文件中 找到相应的行 直接删除就可以。
例:下面这些全删除
include ./$(DEPDIR)/jmemnobs.Plo
6.遇到 xxxxxx : line 3: $'\r': command not found
格式有问题,转换一下就可以 但set ff=unix 不好用有时
apt-cyg install dos2unix
dos2unix xxxx
例:./libtool: line 433: $'\r': command not found
[root@c557867f64e4 jpeg-9a]# dos2unix libtool
dos2unix: converting file libtool to Unix format ...
最后编译:
make
make install
6. JPEG parameter struct mismatch: library thinks size is 632, caller expects 616
如果在运行时报这个,可能是头文件和编译的库不对应,把对应头文件替换就可以。