How to build jpegsrc.v6b on 64-bit Linux machines
jpegsrc is no longer maintained and has not been updated since the Clinton administration. This is odd considering how critical this library is to so many applications.

If you are trying to build on a 64-bit Linux machine you will probably get this error during the ./configure step:

checking host system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized


The fix is simple -- just copy '/usr/share/libtool/config.guess' and '/usr/share/libtool/config.sub' to the same directory as the jpeg-6b ./configure script. You can also copy from from /usr/share/automake-1.9/.

cp /usr/share/libtool/config.guess .
cp /usr/share/libtool/config.sub .


./configure --enable-shared --enable-static

One site suggests that you also need tell the jpegsrc build where the 64-bit libdir is located:

make libdir=/usr/lib64
make libdir=/usr/lib64 install
That will change the directory where 'make install' puts the libjpeg library files, but you may not want that if you are installing libjpeg to a custom path (in other words, if you used the --prefix option for configure).

如果/usr/share/libtool/config.*不存在,则可以先删除本机libtool包,然后重新安装最新版本的libtool,再将对应的libtool/config.*复制到安装源位置,覆盖原来的文件,重新编译: 

# yum -y remove libtool
# wget http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz
# tar zxvf libtool-2.4.2.tar.gz
# cd libtool-2.4.2
# ./configure
# make
# make install

# cd ../jpeg-6b/
# cp /usr/local/share/libtool/config/config.* .
# ./configure --prefix=/usr/local/modules/jpeg6/ --enable-shared --enable-static

[root@test jpeg-6b]# ./configure --enable-shared --enable-static
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking how to run the C preprocessor... gcc -E
checking for function prototypes... yes
checking for stddef.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for size_t... yes
checking for type unsigned char... yes
checking for type unsigned short... yes
checking for type void... yes
checking for working const... yes
checking for inline... __inline__
checking for broken incomplete types... ok
checking for short external names... ok
checking to see if char is signed... yes
checking to see if right shift is signed... yes
checking to see if fopen accepts b spec... yes
checking for a BSD compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking host system type... x86_64-unknown-linux-gnu
checking for ranlib... ranlib
checking for gcc... gcc
checking whether we are using GNU C... yes
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc static flag -static works... -static
checking whether ln -s works... yes
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the linker (/usr/bin/ld) supports shared libraries... yes
checking for BSD-compatible nm... /usr/bin/nm -B
checking command to parse /usr/bin/nm -B output... yes
checking how to hardcode library paths into programs... immediate
checking for /usr/bin/ld option to reload object files... -r
checking dynamic linker characteristics... Linux ld.so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for objdir... .libs
creating libtool
checking libjpeg version number... 62
creating ./config.status
creating Makefile
creating jconfig.h
jconfig.h is unchanged

本日志由 flyinweb 于 2011-12-22 09:16:56 发表,目前已经被浏览 509 次,评论 0 次;

作者添加了以下标签: JpegV6x86_64-unknown-linux-gnulibtool

引用通告:http://www.517sou.net/Article/743/Trackback.ashx

评论订阅:http://www.517sou.net/Article/743/Feeds.ashx

评论列表

    暂时没有评论
(必填)
(必填,不会被公开)