[argyllcms] Argyll 1.4.0: undefined reference to symbol 'jpeg_write_m_byte'

  • From: Chris Lilley <chris@xxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Thu, 10 May 2012 18:40:21 +0200

Hello argyllcms,

I'm having trouble compiling Argyll 1.4.0 from source under OpenSUSE 12.1. I 
have compiled other versions, 1.3.4 to 1.3.7 on other machines, and can compile 
1.3.6 on this machine (so the patched jam is set up correctly, for example).

I get an undefined symbol in a jpeg library. The system JPEG library v.6.2  is 
installed; it looks as if Argyll is compiling against the supplied v.8 library 
and then linking against 6.2?

I did attempt to upgrade from 6.2 to 8 for the system JPEG library, but was 
informed that 400-off dependencies (basically all of the Gnome and KDE 
applications) would be removed as 6.2 dependencies. So i decided not to do that.

Looking in the jamtop file I see a test for system JPEG library which seems to 
be failing. I was able to get everything to compile and link by commenting out 
the "If nothing else, use Argyll supplied JPEG library" section and then adding 
another bit, a copy of what have happened had the test succeeded.

Well, a copy that changes what seems to be a copypaste error

LINKFLAGS += $(LINKFLAG)tiff ;

to

LINKFLAGS += $(LINKFLAG)jpeg ;


While that got me up and running, it is an unsatisfactory hack.

# If nothing else, use Argyll supplied JPEG library
#if ! $(HAVE_JPEG) || $(BUILTIN_JPEG) {
#       echo "Using built in JPEG library" ;
#       JPEGLIB = ../jpg/libjpg.lib ;
#       JPEGINC = ../jpg ;
#}

#Force system JPEG
        echo "Forcing system JPEG library" ;
        JPEGLIB = ;
        JPEGINC = ;
        LINKFLAGS += $(LINKFLAG)jpeg ;
        HAVE_JPEG = true ;



-- 
 Chris Lilley   Technical Director, Interaction Domain                 
 W3C Graphics Activity Lead, Fonts Activity Lead
 Co-Chair, W3C Hypertext CG
 Member, CSS, WebFonts, SVG Working Groups
Chmod1 xicc/xicclu 
Cc_ xicc/revfix.o 
Link_ xicc/tiffgamut 
Link_ xicc/revfix 
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: 
xicc/libxicc.a(iccjpeg.o): undefined reference to symbol 
'jpeg_write_m_byte@@LIBJPEG_6.2'
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: 
note: 'jpeg_write_m_byte@@LIBJPEG_6.2' is defined in DSO 
/usr/lib64/libjpeg.so.62 so try adding it to the linker command line
/usr/lib64/libjpeg.so.62: could not read symbols: Invalid operation
collect2: ld returned 1 exit status

        cc -o xicc/tiffgamut  xicc/tiffgamut.o  -L/usr/lib64 -ldl -lrt -lX11 
-lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss -ltiff jpg/libjpg.a 
xicc/libxicc.a spectro/libinsttypes.a gamut/libgamut.a rspl/librspl.a 
cgats/libcgats.a icc/libicc.a plot/libplot.a plot/libvrml.a numlib/libnum.a  
-lm -lpthread 

...failed Link_ xicc/tiffgamut ...
Chmod1 xicc/revfix 
Archive imdi/libimdi.a 
...failed updating 1 target(s)...
...updated 304 target(s)...
make: *** [all] Error 1
chris@linux-l7dh:~/colorcode/Argyll_V1.4.0> 
 

Other related posts: