一、下載源碼 二、解壓縮
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
如果在運行時報這個,可能是頭文件和編譯的庫不對應,把對應頭文件替換就可以。