Chinaunix首页 | 论坛 | 博客
  • 博客访问: 181556
  • 博文数量: 32
  • 博客积分: 1910
  • 博客等级: 上尉
  • 技术积分: 495
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-31 21:28
文章存档

2009年(3)

2008年(29)

我的朋友

分类: LINUX

2008-07-15 10:28:47

step1:下载并解压jpeg源代码包

step2:
 #cd ./jpeg-6b
 #./configure --prefix=/home/jpeg_arm --exec-prefix=/home/jpeg_arm \
               --enable-shared --enable-static
 下面分别介绍这几个参数的作用:
 
 --prefix=/home/jpeg_arm_include : 执行make install 后,会将与体系无关的文件拷贝到此目录下,具体如下:
 /home/jpeg_arm_include.....................................
        |
       +---include........................................
             |
             ---jconfig.h
             |
             ---jerror.h
             |
             ---jmorecfg.h
             |
             ---jpeglib.h
       +---man............................................
             |
            +---man1.......................................
                  |
                  ---cjeg.1
                  |
                  ---djpeg.1
                  |
                  ---jpegtran.1
                  |
                  ---rdjpgcom.1
                  |
                  ---wrjpgcom.1
               
 --exec-prefix=/home/jpeg_arm_lib : 执行make install 后,会将与体系无关的文件拷贝到此目录下,即将一些可执行程序、动态链接库和静态链接库拷贝到此目录的相应目录下,具体如下:
 /home/jpeg_arm_lib........................................
        |
       +---bin............................................
             |
             ---cjeg
             |
             ---djpeg
             |
             ---jpegtran
             |
             ---rdjpgcom
             |
             ---wrjpgcom
       +---lib...........................................
             |
             ---libjpeg.la
             |
             ---libjpeg.so 
             |
             ---libjpeg.so.62
             |
             ---libjpeg.so.62.0.0 
           
 --enable-shared : 用GNU libtool编译成动态链接库 。下面分别对应有无此参数所生成的Makefile的比较:
       ------------------------------------------------------------------------------------------- 
              无--enable-shared参数             |               有--enable-shared参数
       ------------------------------------------------------------------------------------------- 
                          LIBTOOL =                   |            LIBTOOL = ./libtool
       -------------------------------------------------------------------------------------------
                           O = o  A = a                 |            O = lo    A = la
       -------------------------------------------------------------------------------------------
                          LN= $(CC)                    |      LN= $(LIBTOOL) --mode=link $(CC)
       -------------------------------------------------------------------------------------------
    INSTALL_PROGRAM= ${INSTALL}     |  INSTALL_PROGRAM= $(LIBTOOL) --mode=install ${INSTALL}
        INSTALL_LIB= ${INSTALL} -m 644  |  INSTALL_LIB= $(LIBTOOL) --mode=install ${INSTALL}
      -------------------------------------------------------------------------------------------------------
           无参数:
              # .c.lo:
              #  $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c $(srcdir)/$*.c
           有参数:
              .c.lo:
              $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c $(srcdir)/$*.c
   ----------------------------------------------------------------------------------------------------------
          无参数:
             install: cjpeg djpeg jpegtran rdjpgcom wrjpgcom
          有参数: 
             install: cjpeg djpeg jpegtran rdjpgcom wrjpgcom install-lib
    -----------------------------------------------------------------------------------------------------------

step3:修改生成的Makefile文件:
       # The name of your C compiler:
       CC= gcc  该成  CC=/usr/local/arm-linux/bin/arm-linux-gcc (根据你自己交叉编译器的位置修改)
       # library (.a) file creation command
       AR= ar rc 该成  AR= /usr/local/arm-linux/arm-linux/bin/ar rc  (同上)
       # second step in .a creation (use "touch" if not needed)
       AR2= ranlib 该成  AR2= /usr/local/arm-linux/arm-linux/bin/ranlib (同上)

step4:#make
      #make install
      这样JPEG库就交叉编译成功了,相应的库和头文件都在/home/jpeg_arm/lib和/home/jpeg_arm/include下了!

阅读(1413) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~