Closed ken0nek closed 8 years ago
Hi @ken0nek, it looks like an openslide install issue to me. Perhaps openslide.pc
is being found, but the actual libraries are not?
Try:
$ pkg-config openslide --libs
-L/usr/local/Cellar/openslide/3.4.1_1/lib -lopenslide
Then verify that there are libraries in that directory:
$ ls /usr/local/Cellar/openslide/3.4.1_1/lib
libopenslide.0.dylib libopenslide.dylib pkgconfig
And that your linker has been configured to search there. You may need to set LD_LIBRARY_PATH
, edit ld.so.conf
, or something else, depending on your platform.
If this is linux, your platform libvips should have dzsave
. It's worth checking there too.
VIPS is trying to link against a version of OpenSlide older than 3.3.0. That's strange, because configure should prevent that from happening. Are you on Ubuntu 12.04, by any chance? Is it possible that you have multiple copies of OpenSlide installed on your system?
Oh, I thought of another possibility. I think you have a openslide.pc
file and headers for 3.4.0 or later, but at link time you are picking up a very old openslide lib.
I would either remove the ancient openslide, or configure your linker to use the new one in preference, by setting LD_LIBRARY_PATH
or editing ld.so.conf
.
Thank you for your great comments I really appreciate it :)
I did this in Cent OS 6.7 and I compiled openslide3.4.0 from source.
$ pkg-config openslide --libs
-lopenslide
echo $LD_LIBRARY_PATH
/usr/local/lib:/usr/lib:/usr/local/cuda/lib64:/usr/local/lib64/perl5/Alien/wxWidgets/gtk_2_8_12_uni/lib/:/usr/local/bamtools/lib/bamtools:/usr/local/arb/LIBLINK:/usr/local/gridscheduler/lib/linux-x64:/usr/local/lib:/usr/lib:/usr/local/cuda/lib64:/usr/local/lib64/perl5/Alien/wxWidgets/gtk_2_8_12_uni/lib/:/usr/local/bamtools/lib/bamtools:/usr/local/arb/LIBLINK:/usr/local/gridscheduler/lib/linux-x64:/usr/local/lib:/usr/lib:/usr/local/cuda/lib64:/usr/local/lib64/perl5/Alien/wxWidgets/gtk_2_8_12_uni/lib/:/usr/local/bamtools/lib/bamtools:/usr/local/arb/LIBLINK:/usr/local/gridscheduler/lib/linux-x64:/usr/local/cuda/lib64:/usr/local/gridscheduler/lib/linux-x64
and I check pkg-config
$ pwd
/usr/local/lib/pkgconfig
$ cat openslide.pc
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: openslide
Description: A library for reading whole slide images.
Version: 3.4.0
Libs: -L${libdir} -lopenslide
Cflags: -I${includedir}/openslide
$ pwd
/usr/lib/pkgconfig
$ cat openslide.pc
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: openslide
Description: A library for reading whole slide images.
Version: 3.4.0
Libs: -L${libdir} -lopenslide
Cflags: -I${includedir}/openslide
/usr/lib
libopenslide.la, libopenslide.so, libopenslide.so.0, libopenslide.so.0.4.0
/usr/local/lib
libopenslide.la, libopenslide.so, libopenslide.so.0, libopenslide.so.0.4.0
any suggestions?
I think your linker is not using /usr/local/lib
, it's linking to the old libraries in /usr/lib
. You can either set the LD_LIBRARY_PATH
environment variable, or edit ld.so.conf
.
It looks like you've maybe partially installed openslide to /usr
as well, since that .pc
file seems to be 3.4.0. That's probably not a good idea, your package manager should be running the files in that area. Do you have an old openslide installed via yum as well? It might be a good idea to remove that, if you're not using it elsewhere.
Finally it worked!!
I change LD_LIBRARY_PATH
, execute yum remove openslide
as you said.
and add export PKG_CONFIG_PATH=/usr/lib/pkgconfig/
Thank you all (@bgilbert, @jcupitt) for helping me.
Hi I want to use
dzsave
and tried to install vips 8.1.2 Then./configure
saysthen
make
gets errors below./configure
detects openslide correctly but it makes error :(same error occurs even vips 7.40.11