[parsec-users] Problem compiling vips

Thomas Karcher karcher at ipd.uka.de
Mon Mar 30 05:03:06 EDT 2009


Hi,

when compiling the suite with 'parsecmgmt -a build', I get an error like
this:

==
make[3]: Entering directory
`/raid/samba_tmp/PERSISTENT/tk/parsec-2.0/pkgs/apps/vips/obj/x86_64-linux.gcc/src/iofuncs'
[...]
/usr/bin/gcc -std=gnu99 -O3 -funroll-loops -fprefetch-loop-arrays
-DPARSEC_VERSION=2.0 -o vips vips.o -pthread
-I/tmp/samba/PERSISTENT/tk/parsec-2.0/pkgs/libs/libxml2/inst/x86_64-linux.gcc/include/libxml2 -I/tmp/samba/PERSISTENT/tk/parsec-2.0/pkgs/libs/glib/inst/x86_64-linux.gcc/lib/glib-2.0/include -I/tmp/samba/PERSISTENT/tk/parsec-2.0/pkgs/libs/glib/inst/x86_64-linux.gcc/include/glib-2.0 -pthread -Wl,--export-dynamic  -L/tmp/samba/PERSISTENT/tk/parsec-2.0/pkgs/libs/glib/inst/x86_64-linux.gcc/lib -L/tmp/samba/PERSISTENT/tk/parsec-2.0/pkgs/libs/zlib/inst/x86_64-linux.gcc/lib -L/usr/lib64 -L/usr/lib ../../libsrc/.libs/libvips.a -L/tmp/samba/PERSISTENT/tk/parsec-2.0/pkgs/libs/libxml2/inst/x86_64-linux.gcc/lib /tmp/samba/PERSISTENT/tk/parsec-2.0/pkgs/libs/glib/inst/x86_64-linux.gcc/lib/libgthread-2.0.a -lpthread -lrt /tmp/samba/PERSISTENT/tk/parsec-2.0/pkgs/libs/glib/inst/x86_64-linux.gcc/lib/libgmodule-2.0.a -ldl /usr/lib/libxml2.so /tmp/samba/PERSISTENT/tk/parsec-2.0/pkgs/libs/glib/inst/x86_64-linux.gcc/lib/libgobject-2.0.a /tmp/samba/PERSISTENT/tk/parsec-2.0/pkgs/libs/glib/inst/x86_64-linux.gcc/lib/libglib-2.0.a -lm
../../libsrc/.libs/libvips.a(cimg.o): In function
`cimg_library::CImg<unsigned char>* vips_to_cimg<unsigned
char>(region_struct*, im_rect_struct*)':
cimg.cpp:(.text+0x24d): undefined reference to `operator new(unsigned
long)'
cimg.cpp:(.text+0x3a2): undefined reference to `operator new[](unsigned
long)'  
cimg.cpp:(.text+0x3b6): undefined reference to `operator delete(void*)'
[... lots more ...]
==

Apparently, this comes from binding with gcc instead of g++. I can
reproduce the same error when I compile vips manually with the
same ./configure line. And I can manually run the failing command line
by substituting gcc with g++.

However, if I remove the "--disable-shared" option (when compiling
manually), it works.

Now what to do?

a) Remove --disable-shared from PARSEC configuration?

b) Fix vips to compile with --disable-shared? (Any insights on this?)

c) I'm doing something wrong ...?

d) Tell me what you need to know more about my compilation environment.
Currently it's a standard Debian lenny.

e) <please fill option at your own convenience>


Thank you,
Thomas





More information about the parsec-users mailing list