libjpeg的交叉编译

来源:互联网 发布:长沙最新cnc编程招聘 编辑:程序博客网 时间:2024/06/10 17:38

http://blog.csdn.net/ypist/article/details/8190966

从http://www.ijg.org/files/网站下载lib库的源文件.
开工:

[cpp] view plaincopyprint?
  1. tar -xzvf jpeg-6b.tar.gz  
  2. cd jpeg-6b  
  3. mkdir /opt/jpeg/jpeg-6b-release  
  4. ./configure CC=mipsel-linux-gcc --prefix=/opt/jpeg/jpeg-6b-release --enable-shared --enable-static --host=mipsel-linux  
  5. mkdir /opt/jpeg/jpeg-6b-release/bin  
  6. mkdir /opt/jpeg/jpeg-6b-release/include  
  7. mkdir /opt/jpeg/jpeg-6b-release/lib  
  8. mkdir /opt/jpeg/jpeg-6b-release/man  
  9. mkdir /opt/jpeg/jpeg-6b-release/man/man1  
  10. make  


=================================================
出错:

[cpp] view plaincopyprint?
  1. [root@localhost jpeg-6b]# make  
  2. ./libtool --mode=compile mipsel-linux-gcc -O2  -I. -c ./jcapimin.c  
  3. make: ./libtool: Command not found  
  4. make: *** [jcapimin.lo] Error 127  

所以,我们得先安装 libtool工具。
=================================================

 

从http://download.chinaunix.net/download/0007000/6039.shtml下载
得到: libtool-2.4.2.tar.xz
放到我们的Linux系统中:

网上说,tar.xz文件解压 有2中办法:
方式1:
    tar xvfJ ***.tar.xz
方式2:
    xz -d ***.tar.xz
    tar -xvf  ***.tar
我用方法1尝试,报错:

[cpp] view plaincopyprint?
  1. [root@localhost jpeg]# tar xvfJ libtool-2.4.2.tar.xz  
  2. tar: invalid option -- J  
  3. Try `tar --help' or `tar --usage' for more information.  
  4. [root@localhost jpeg]# tar xvfj libtool-2.4.2.tar.xz  
  5. bzip2: (stdin) is not a bzip2 file.  
  6. tar: Child returned status 2  
  7. tar: Error exit delayed from previous errors  

于是,我采用方法2:
[root@localhost jpeg]# xz -d libtool-2.4.2.tar.xz
bash: xz: command not found
好吧, 我去给你安装个xz工具,从 http://tukaani.org/xz/xz-4.999.9beta.tar.bz2
上面下载得到 xz-4.999.9beta.tar.bz2。
  1、tar -jxvf xz-4.999.9beta.tar.bz2
  2、cd xz-4.999.9beta
  3、./configure --prefix=/
  4、make && make install
OK, 去之前的目录,然后 xz -d libtool-2.4.2.tar.xz
得到: libtool-2.4.2.tar
然后:tar -xvf libtool-2.4.2.tar
得到: libtool-2.4.2 文件夹。
$ cd libtool-2.2.4/ 

[cpp] view plaincopyprint?
  1. [root@localhost libtool-2.4.2]# ./configure CC=mipsel-linux-gcc --host=mipsel-linux --build=mipsel-linux --prefix=/opt/jpeg/libtool-release   
  2. ## ------------------------- ##   
  3. ## Configuring libtool 2.4.2 ##  
  4. ## ------------------------- ##   
  5.   
  6. checking for a BSD-compatible install... /usr/bin/install -c  
  7. checking whether build environment is sane... yes  
  8. checking for a thread-safe mkdir -p... /bin/mkdir -p  
  9. checking for gawk... gawk  
  10. checking whether make sets $(MAKE)... yes  
  11. checking build system type... mipsel-unknown-linux-gnu  
  12. checking host system type... mipsel-unknown-linux-gnu  
  13. configure: autobuild project... GNU Libtool  
  14. configure: autobuild revision... 2.4.2 ()  
  15. configure: autobuild hostname... localhost.localdomain  
  16. configure: autobuild mode... default  
  17. configure: autobuild timestamp... 20121116T063533Z  
  18. checking for mipsel-linux-gcc... mipsel-linux-gcc  
  19. checking whether the C compiler works... yes  
  20. checking for C compiler default output file name... a.out  
  21. checking for suffix of executables...   
  22. checking whether we are cross compiling... configure: error: in `/opt/jpeg/libtool-2.4.2':  
  23. configure: error: cannot run C compiled programs.  
  24. If you meant to cross compile, use `--host'.  
  25. See `config.log' for more details  
  26.   
  27. 后来改为:   
  28. [root@localhost libtool-2.4.2]# ./configure CC=mipsel-linux-gcc --host=mipsel-linux --prefix=/opt/jpeg/libtool-release   
  29. 配置通过。  

 

[cpp] view plaincopyprint?
  1. $ make && make install    
  2. [root@localhost libtool-2.4.2]# ls ../libtool-release/bin  
  3. libtool  libtoolize  
  4. [root@localhost libtool-2.4.2]# cp ../libtool-release/bin/* ../jpeg-6b/  
  5. [root@localhost libtool-2.4.2]# cd ../jpeg-6b  
  6. ./configure CC=mipsel-linux-gcc --prefix=/opt/jpeg/jpeg-6b-release --enable-shared --enable-static --host=mipsel-linux  
  7. make && mak install  

 

至此,得到我们的文件在 jpeg-6b-release 目录下面。

 

下面我们再延伸一下,将8d版本的库也编译了吧。

[cpp] view plaincopyprint?
  1. [root@localhost jpeg]# cp /mnt/hgfs/jpeg_lib/jpegsrc.v8d.tar.gz ./  
  2. [root@localhost jpeg]# tar zxvf jpegsrc.v8d.tar.gz   
  3. [root@localhost jpeg-8d]# ./configure CC=mipsel-linux-gcc --prefix=/opt/jpeg/jpeg-8d-release --enable-shared --enable-static --host=mipsel-linux  
  4. [root@localhost jpeg-8d]# make && make install  
  5. [root@localhost jpeg-8d]# cd ../jpeg-8d-release/  
  6. [root@localhost jpeg-8d-release]# tree  
  7. .  
  8. |-- bin  
  9. |   |-- cjpeg  
  10. |   |-- djpeg  
  11. |   |-- jpegtran  
  12. |   |-- rdjpgcom  
  13. |   `-- wrjpgcom  
  14. |-- include  
  15. |   |-- jconfig.h  
  16. |   |-- jerror.h  
  17. |   |-- jmorecfg.h  
  18. |   `-- jpeglib.h  
  19. |-- lib  
  20. |   |-- libjpeg.a  
  21. |   |-- libjpeg.la  
  22. |   |-- libjpeg.so -> libjpeg.so.8.4.0  
  23. |   |-- libjpeg.so.8 -> libjpeg.so.8.4.0  
  24. |   `-- libjpeg.so.8.4.0  
  25. |-- man  
  26. |   `-- man1  
  27. |       |-- cjpeg.1  
  28. |       |-- djpeg.1  
  29. |       |-- jpegtran.1  
  30. |       |-- rdjpgcom.1  
  31. |       `-- wrjpgcom.1  
  32. `-- share  
  33.     `-- man  
  34.         `-- man1  
  35.             |-- cjpeg.1  
  36.             |-- djpeg.1  
  37.             |-- jpegtran.1  
  38.             |-- rdjpgcom.1  
  39.             `-- wrjpgcom.1  
  40.   
  41. 8 directories, 24 files  


 

至此, 我们的8d版本的JPEG库也编译通过了,哈哈。。

 

现在我们回过头来看看xz文件的压缩作用如何:
-rwxr-xr-x 1 root root 11929600 2012-11-16 01:11 libtool-2.4.2.tar
-rwxrwxrwx 1 root root 868760 2012-11-16 01:09 libtool-2.4.2.tar.xz
事实证明,xz在压缩文件方面还是相当优秀的的。。

经网上查阅资料,xz文件的压缩和解压步骤如下:
创建tar.xz文件:只要先 tar cvf xxx.tar xxx/ 这样创建xxx.tar文件先,然后使用 xz -z xxx.tar 来将 xxx.tar压缩成为 xxx.tar.xz
解压tar.xz文件:先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。

 

原创粉丝点击