一、下载源码 二、解压缩

​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

如果在运行时报这个,可能是头文件和编译的库不对应,把对应头文件替换就可以。