`
yidongkaifa
  • 浏览: 4063480 次
文章分类
社区版块
存档分类
最新评论

libjpeg的交叉编译

 
阅读更多

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

tar -xzvf jpeg-6b.tar.gz
cd jpeg-6b
mkdir /opt/jpeg/jpeg-6b-release
./configure CC=mipsel-linux-gcc --prefix=/opt/jpeg/jpeg-6b-release --enable-shared --enable-static --host=mipsel-linux
mkdir /opt/jpeg/jpeg-6b-release/bin
mkdir /opt/jpeg/jpeg-6b-release/include
mkdir /opt/jpeg/jpeg-6b-release/lib
mkdir /opt/jpeg/jpeg-6b-release/man
mkdir /opt/jpeg/jpeg-6b-release/man/man1
make


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

[root@localhost jpeg-6b]# make
./libtool --mode=compile mipsel-linux-gcc -O2  -I. -c ./jcapimin.c
make: ./libtool: Command not found
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尝试,报错:

[root@localhost jpeg]# tar xvfJ libtool-2.4.2.tar.xz
tar: invalid option -- J
Try `tar --help' or `tar --usage' for more information.
[root@localhost jpeg]# tar xvfj libtool-2.4.2.tar.xz
bzip2: (stdin) is not a bzip2 file.
tar: Child returned status 2
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/

[root@localhost libtool-2.4.2]# ./configure CC=mipsel-linux-gcc --host=mipsel-linux --build=mipsel-linux --prefix=/opt/jpeg/libtool-release 
## ------------------------- ##
## Configuring libtool 2.4.2 ##
## ------------------------- ##

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... mipsel-unknown-linux-gnu
checking host system type... mipsel-unknown-linux-gnu
configure: autobuild project... GNU Libtool
configure: autobuild revision... 2.4.2 ()
configure: autobuild hostname... localhost.localdomain
configure: autobuild mode... default
configure: autobuild timestamp... 20121116T063533Z
checking for mipsel-linux-gcc... mipsel-linux-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... configure: error: in `/opt/jpeg/libtool-2.4.2':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details

后来改为: 
[root@localhost libtool-2.4.2]# ./configure CC=mipsel-linux-gcc --host=mipsel-linux --prefix=/opt/jpeg/libtool-release 
配置通过。

$ make && make install  
[root@localhost libtool-2.4.2]# ls ../libtool-release/bin
libtool  libtoolize
[root@localhost libtool-2.4.2]# cp ../libtool-release/bin/* ../jpeg-6b/
[root@localhost libtool-2.4.2]# cd ../jpeg-6b
./configure CC=mipsel-linux-gcc --prefix=/opt/jpeg/jpeg-6b-release --enable-shared --enable-static --host=mipsel-linux
make && mak install

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

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

[root@localhost jpeg]# cp /mnt/hgfs/jpeg_lib/jpegsrc.v8d.tar.gz ./
[root@localhost jpeg]# tar zxvf jpegsrc.v8d.tar.gz 
[root@localhost jpeg-8d]# ./configure CC=mipsel-linux-gcc --prefix=/opt/jpeg/jpeg-8d-release --enable-shared --enable-static --host=mipsel-linux
[root@localhost jpeg-8d]# make && make install
[root@localhost jpeg-8d]# cd ../jpeg-8d-release/
[root@localhost jpeg-8d-release]# tree
.
|-- bin
|   |-- cjpeg
|   |-- djpeg
|   |-- jpegtran
|   |-- rdjpgcom
|   `-- wrjpgcom
|-- include
|   |-- jconfig.h
|   |-- jerror.h
|   |-- jmorecfg.h
|   `-- jpeglib.h
|-- lib
|   |-- libjpeg.a
|   |-- libjpeg.la
|   |-- libjpeg.so -> libjpeg.so.8.4.0
|   |-- libjpeg.so.8 -> libjpeg.so.8.4.0
|   `-- libjpeg.so.8.4.0
|-- man
|   `-- man1
|       |-- cjpeg.1
|       |-- djpeg.1
|       |-- jpegtran.1
|       |-- rdjpgcom.1
|       `-- wrjpgcom.1
`-- share
    `-- man
        `-- man1
            |-- cjpeg.1
            |-- djpeg.1
            |-- jpegtran.1
            |-- rdjpgcom.1
            `-- wrjpgcom.1

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来解包。


分享到:
评论

相关推荐

    libjpeg-turbo 交叉编译aarch64 6.5.0 jpeg图像加速库

    libjpeg-turbo 交叉编译aarch64 6.5.0 jpeg图像加速库

    libjpeg.so.62.0.0.rar

    交叉编译libjpeg 交叉编译工具 版本:3.4.1 路径:/usr/local/arm/3.4.1/bin 编译libjpeg前要确保系统装了libtool库。否则编译不成功。 1、下载libjpeg源码:ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar....

    Linux应用开发-libjpeg库交叉编译与使用.pdf

    在开发板上如果想要显示jpeg格式的图片,必须用到libjpeg库,不可能自己去编写jpg的解码代码。 libjpeg是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。这个库由独立JPEG...

    用4.3.2交叉编译好的opencv2.4.9所需依赖库

    一、编译环境及库文件 linux环境:ubuntu12.04 交叉编译:4.3.2 arm板子:iTOP4412开发板 libz: libjpeg: libpng: libyasm: opencv: libx264: libxvid: lffmpeg: cmake:

    arm-none-linux opencv 交叉编译所需依赖库

    opencv在Linux系统下进行交叉编译所需要的七个依赖库,包括libjpeg,libpng,zlib等。我在交叉编译的时候使用的是opencv2.13

    交叉编译GraphicsMagick

    该资源只有交叉编译后的GraphicsMagick库和gm二进制,可以直接放在嵌入式设备中运行gm命令 在我们的嵌入式设备上运行gm程序的步骤 1. 在嵌入式设备的/lib下ln -s /lib/libGraphicsMagick.so.3.13.0 ...

    crosslibjpeg.sh

    此源码为OpenCV依赖libjpeg交叉编译的脚本,可以直接运行,免去敲写命令行的苦恼。

    libyuv 基于libjpeg-turbo

    最近libyuv库

    libjpeg源码包

    包含libtool-2.2.4.tar.bz2和jpegsrc.v6b.tar.gz。

    已经交叉编译好的arm64版本的qt5.12.1以及qtmqtt的完整产物

    Using system libjpeg ............... yes PNG .................................. yes Using system libpng ................ no EGL .................................... no OpenVG .......................

    libjpeg 内存解码 ARM平台嵌入式linux

    1、jpeg-test-arm目录下是测试修改后的动态库程序 ...3、libjpeg.so.62.0.0是交叉编译修改libjpeg源码生成的动态库,arm平台下的。 4、具体修改步骤参考如下地址 http://www.cnblogs.com/pang1567/p/3683601.html

    编译好的opencv依赖库

    交叉编译OpenCV时需要提前交叉编译一些依赖库,这是交叉编译完成后的依赖库,可以用来交叉编译OpenCV。包含:ffmpeg、libjpeg、libpng、libx264、libxvid、yasm、zlib

    编译opencv需要使用的源码,注意不同的交叉编译链需要选择不同的版本号,否则编译链不支持某些特性会编译不通过

    libjpeg x264 ffmpeg_347 ffmpeg_436 opencv_450 opencv_470

    gear-lib通用的C基础库.rar

    gear-lib通用的C基础库,包含很多牛逼的库源码,可以编译后使用集成到自己项目中,全部用POSIX C实现,目标是为了跨平台兼容 linux, windows, android, ios. * 适用于物联网,嵌入式,以及网络服务开发等场景 !...

    Cross-Compile_Packages.zip

    该文件夹包含交叉编译OpenCV所需要的编译器和依赖库文件,下载即用。内容包含编译器arm-2014.05,依赖库ffmpeg、libjpeg、libpng、libx264、libxvid、yasm、zlib。需要编译

    jpegsrc.v9b.tar.gz

    Ubuntu交叉编译OpenCV时需要安装的zlib库,亲测可用。

    libge:快速简便的多平台游戏引擎

    图书馆 Gamma引擎库是一种快速,便捷的多平台游戏引擎,... 如果要交叉编译到其他平台,请运行带有-Dtarget选项的'cmake'命令,其中TARGET可以是: linux 赢 苹果电脑 在Linux / Windows / Mac平台上,您还可以使用-D

    Quirc_nucong.rar

    0x00000001 (NEEDED) 共享库:[libjpeg.so.8] 0x00000001 (NEEDED) 共享库:[libSDL-1.2.so.0] 0x00000001 (NEEDED) 共享库:[libSDL_gfx.so.13] 0x00000001 (NEEDED) 共享库:[libc.so.6]; 其中libSDL_gfx.so...

    嵌入式linux截图工具移植(精华版).pdf

    嵌入式linux截图工具的基本原理就是通过读取Framebuffer,把LCD上显示的内容转换成图片格式文件(jpeg、bmp、png)...编译截图工具,需要系统的jpeg库(libjpeg.so)的支持,一般交叉编译器中没有jpeg库,需要自己安装。

Global site tag (gtag.js) - Google Analytics