elgw / nd2tool

Convert Nikon nd2 files to tiff
MIT License
6 stars 0 forks source link

install error for ubuntu 24.04 #5

Closed doggydaddy closed 4 days ago

doggydaddy commented 2 weeks ago

Installing on any flavor of ubuntu 24.04 will result in the following linking errors

/usr/bin/ld: /home/zaioz/nd2tool/lib/liblimfile-shared.so: undefined reference to TIFFReadRGBAStripExt@LIBTIFF_4.0' /usr/bin/ld: /home/zaioz/nd2tool/lib/liblimfile-shared.so: undefined reference toTIFFReadRGBATileExt@LIBTIFF_4.0'

This is with libtiff5 and 4 installed

elgw commented 2 weeks ago

Hello!

I'm sorry for the mess under Ubuntu 24...

I guess that you followed the instructions at https://github.com/elgw/nd2tool/blob/main/INSTALL.md and have this problem already during the build process (during linking)? If that does not work I must have forgotten some part of the process.

I took the libtiff.so.5 from my previous Ubuntu 22 install, and the symbols is there:

objdump -TC /usr/lib/x86_64-linux-gnu/libtiff.so.5 | grep TIFFReadRGBATileExt
0000000000033a40 g    DF .text  000000000000033c  LIBTIFF_4.0 TIFFReadRGBATileExt

but it could be that this is a symbol that isn't present in all builds. Could you see what you get with objdump?

Alternatively I've forgotten some part of the instructions, in that case I'll have to check again with a VM.

For reference, here is what it says on my machine after installation:

lsb_release -dc
No LSB modules are available.
Description:    Ubuntu 24.04.1 LTS
Codename:   noble
ldd `which nd2tool`
    linux-vdso.so.1 (0x00007ffe425b9000)
    libnd2readsdk-shared.so => /usr/local/lib/libnd2readsdk-shared.so (0x00007c20776fb000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007c2077612000)
    libtiff.so.6 => /lib/x86_64-linux-gnu/libtiff.so.6 (0x00007c2077585000)
    libcjson.so.1 => /lib/x86_64-linux-gnu/libcjson.so.1 (0x00007c207757b000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007c2077200000)
    liblimfile-shared.so => /usr/local/lib/liblimfile-shared.so (0x00007c2077054000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007c2076c00000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007c207754c000)
    /lib64/ld-linux-x86-64.so.2 (0x00007c207773b000)
    libwebp.so.7 => /lib/x86_64-linux-gnu/libwebp.so.7 (0x00007c20774d1000)
    libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007c2077417000)
    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007c2077022000)
    libLerc.so.4 => /lib/x86_64-linux-gnu/libLerc.so.4 (0x00007c2076f9b000)
    libjbig.so.0 => /lib/x86_64-linux-gnu/libjbig.so.0 (0x00007c2076f8b000)
    libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007c2076f08000)
    libdeflate.so.0 => /lib/x86_64-linux-gnu/libdeflate.so.0 (0x00007c2076ef5000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007c2076ed9000)
    libtiff.so.5 => /lib/x86_64-linux-gnu/libtiff.so.5 (0x00007c2076b78000)
    libsharpyuv.so.0 => /lib/x86_64-linux-gnu/libsharpyuv.so.0 (0x00007c2076ed1000)

Cheers, Erik

doggydaddy commented 1 week ago

Sorry for the late reply, I have been busy with reinstalling a (this) system.

Here is the exact errors I get:

zaioz@albedo:~$ objdump -TC /usr/lib/x86_64-linux-gnu/libtiff.so.5 | grep TIFFReadRGBAStripExt 0000000000039140 g DF .text 00000000000001e2 LIBTIFF_4.1 TIFFReadRGBAStripExt zaioz@albedo:~$ objdump -TC /usr/lib/x86_64-linux-gnu/libtiff.so.5 | grep TIFFReadRGBATileExt 0000000000039340 g DF .text 0000000000000353 LIBTIFF_4.1 TIFFReadRGBATileExt

zaioz@albedo:~/nd2tool/build$ make package [ 14%] Linking C executable nd2tool /usr/bin/ld: /home/zaioz/nd2tool/lib/liblimfile-shared.so: undefined reference to TIFFReadRGBAStripExt@LIBTIFF_4.0' /usr/bin/ld: /home/zaioz/nd2tool/lib/liblimfile-shared.so: undefined reference toTIFFReadRGBATileExt@LIBTIFF_4.0' collect2: error: ld returned 1 exit status make[2]: [CMakeFiles/nd2tool.dir/build.make:180: nd2tool] Error 1 make[1]: [CMakeFiles/Makefile2:83: CMakeFiles/nd2tool.dir/all] Error 2 make: *** [Makefile:156: all] Error 2

I have tried several builds, and also symbolic linked libtiff4, but nothing seems to get through, builds successfully, only fails at install.

elgw commented 1 week ago

Hello again,

the image did not go through, but regardless of that I'll try on a virtual machine and keep track on the exact steps that are required. Hang on a day or two!

Cheers, Erik

elgw commented 6 days ago

I just tested in a virtual machine.

This should be all that you need to do to install the older version of libtiff.

wget http://security.ubuntu.com/ubuntu/pool/main/t/tiff/libtiff5_4.3.0-6ubuntu0.10_amd64.deb
ar -x libtiff5_4.3.0-6ubuntu0.10_amd64.deb
tar --zstd -xvf data.tar.zst
sudo cp usr/lib/x86_64-linux-gnu/libtiff.so.* /usr/lib/x86_64-linux-gnu/

The exact steps that were required on a clean install are described in the now updated INSTALL.md file.

image