CenterOS 編譯 libjpeg 記錄

一、下載源碼 二、解壓縮

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

如果在運行時報這個,可能是頭文件和編譯的庫不對應,把對應頭文件替換就可以。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章