libITKCommon-5.3.so.1: cannot open shared object file: No such file or directory

Hi, I have been trying to build the SimpleITK-2.2.0.tar.gz with the help of gcc-8.1 on a julia language based sandboxed environment (alpine linux, using BinaryBuilder.jl), i use the following the build_tarball.jl script in order to generate the SimpleITK-build directory, but as i was nearing the end of deployment, the BinaryBuilder.jl julia package gave errors relating to a bunch of ITK shared objects missing from the INSTALL PREFIX. I double checked the installation directory which is /workspace/destdir (i am in a sandboxed environment, and BinaryBuilder.jl requires destdir to be the installation directory), i couldnt find any “.so” files relating to ITK, all of the them were related to SimpleITK.
here is the build_tarball.jl file


using BinaryBuilder, Pkg


name = "libSimpleITK"
version = v"2.2.0"

# Collection of sources required to complete build
sources = [
    ArchiveSource("
https://github.com/SimpleITK/SimpleITK/releases/download/v$(version)/SimpleITK-$(version).tar.gz
", "b07bb98707556ebc2b79aac22dc14950749f509e5b43da8043233275aa55488a")
]

# Bash recipe for building across all platforms
script = raw"""
cd $WORKSPACE/srcdir
mount -t tmpfs -o size=12G tmpfs /workspace/srcdir
cd ..
cd ..
cd workspace/srcdir
ls
wget
https://github.com/SimpleITK/SimpleITK/releases/download/v2.2.0/SimpleITK-2.2.0.tar.gz

ls
tar -xvzf ./SimpleITK-2.2.0.tar.gz
mkdir SimpleITK-build
cd SimpleITK-build/
cmake -DCMAKE_INSTALL_PREFIX:FILEPATH=/workspace/destdir -DCMAKE_BUILD_TYPE:STRING=RELEASE -DBUILD_SHARED_LIBS:BOOL=ON ../SimpleITK-2.2.0/SuperBuild
make -j10
cd SimpleITK-build/
make install
logout
"""

# These are the platforms we will build for by default, unless further
# platforms are passed in on the command line
platforms = [
    Platform("x86_64", "linux"; libc = "glibc")
]


# The products that we will ensure are always built
products = [
    LibraryProduct("libSimpleITK_ITKRegistrationCommon", :libSimpleITK_ITKRegistrationCommon),
    LibraryProduct("libSimpleITK_ITKImageFunction", :libSimpleITK_ITKImageFunction),
    LibraryProduct("libSimpleITK_ITKImageFilterBase", :libSimpleITK_ITKImageFilterBase),
    LibraryProduct("libSimpleITK_ITKDenoising", :libSimpleITK_ITKDenoising),
    LibraryProduct("libSimpleITK_ITKBinaryMathematicalMorphology", :libSimpleITK_ITKBinaryMathematicalMorphology),
    LibraryProduct("libSimpleITKBasicFilters0", :libSimpleITKBasicFilters),
    LibraryProduct("libSimpleITK_ITKConvolution", :libSimpleITK_ITKConvolution),
    LibraryProduct("libSimpleITK_ITKImageSources", :libSimpleITK_ITKImageSources),
    LibraryProduct("libSimpleITK_ITKWatersheds", :libSimpleITK_ITKWatersheds),
    LibraryProduct("libSimpleITK_ITKPDEDeformableRegistration", :libSimpleITK_ITKPDEDeformableRegistration),
    LibraryProduct("libSimpleITK_ITKImageNoise", :libSimpleITK_ITKImageNoise),
    LibraryProduct("libSimpleITK_ITKImageFeature", :libSimpleITK_ITKImageFeature),
    LibraryProduct("libSimpleITK_ITKAnisotropicSmoothing", :libSimpleITK_ITKAnisotropicSmoothing),
    LibraryProduct("libSimpleITK_ITKMathematicalMorphology", :libSimpleITK_ITKMathematicalMorphology),
    LibraryProduct("libSimpleITKBasicFilters1", :libSimpleITKBasicFilters),
    LibraryProduct("libSimpleITK_ITKConnectedComponents", :libSimpleITK_ITKConnectedComponents),
    LibraryProduct("libSimpleITK_ITKLabelMap", :libSimpleITK_ITKLabelMap),
    LibraryProduct("libSimpleITK_ITKClassifiers", :libSimpleITK_ITKClassifiers),
    LibraryProduct("libSimpleITK_ITKReview", :libSimpleITK_ITKReview),
    LibraryProduct("libSimpleITK_ITKRegionGrowing", :libSimpleITK_ITKRegionGrowing),
    LibraryProduct("libSimpleITK_ITKTransform", :libSimpleITK_ITKTransform),
    LibraryProduct("libSimpleITK_ITKFastMarching", :libSimpleITK_ITKFastMarching),
    LibraryProduct("libSimpleITK_ITKImageCompare", :libSimpleITK_ITKImageCompare),
    LibraryProduct("libSimpleITK_ITKLabelVoting", :libSimpleITK_ITKLabelVoting),
    LibraryProduct("libSimpleITK_ITKDeconvolution", :libSimpleITK_ITKDeconvolution),
    LibraryProduct("libSimpleITK_ITKAntiAlias", :libSimpleITK_ITKAntiAlias),
    LibraryProduct("libSimpleITK_ITKImageFusion", :libSimpleITK_ITKImageFusion),
    LibraryProduct("libSimpleITK_ITKImageCompose", :libSimpleITK_ITKImageCompose),
    LibraryProduct("libSimpleITK_ITKColormap", :LibSimpleITK_ITKColormap),
    LibraryProduct("libSimpleITK_ITKLevelSets", :libSimpleITK_ITKLevelSets),
    LibraryProduct("libSimpleITK_ITKFFT", :libSimpleITK_ITKFFT),
    LibraryProduct("libSimpleITK_ITKCommon", :libSimpleITK_ITKCommon),
    LibraryProduct("libSimpleITKCommon", :libSimpleITKCommon),
    LibraryProduct("libSimpleITK_ITKThresholding", :libSimpleITK_ITKThresholding),
    LibraryProduct("libSimpleITK_ITKImageGradient", :libSimpleITK_ITKImageGradient),
    LibraryProduct("libSimpleITK_ITKImageIntensity", :libSimpleITK_ITKImageIntensity),
    LibraryProduct("libSimpleITK_ITKBiasCorrection", :libSimpleITK_ITKBiasCorrection),
    LibraryProduct("libSimpleITK_ITKSmoothing", :libSimpleITK_ITKSmoothing),
    LibraryProduct("libSimpleITK_ITKSuperPixel", :libSimpleITK_ITKSuperPixel),
    LibraryProduct("libSimpleITKRegistration", :libSimpleITKRegistration),
    LibraryProduct("libSimpleITK_SimpleITKFilters", :libSimpleITK_SimpleITKFilters),
    LibraryProduct("libSimpleITK_ITKImageLabel", :libSimpleITK_ITKImageLabel),
    LibraryProduct("libSimpleITK_ITKDisplacementField", :libSimpleITK_ITKDisplacementField),
    LibraryProduct("libSimpleITK_ITKImageGrid", :libSimpleITK_ITKImageGrid),
    LibraryProduct("libSimpleITK_ITKImageStatistics", :libSimpleITK_ITKImageStatistics),
    LibraryProduct("libSimpleITK_ITKDistanceMap", :libSimpleITK_ITKDistanceMap),
    LibraryProduct("libSimpleITK_ITKCurvatureFlow", :libSimpleITK_ITKCurvatureFlow),
    LibraryProduct("libSimpleITKIO", :libSimpleITKIO),
    ExecutableProduct("sitkCompareDriver", :sitkCompareDriver)
]

# Dependencies that must be installed before this package can be built
dependencies = Dependency[
]

# Build the tarballs, and possibly a `build.jl` as well.
build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; julia_compat="1.6", preferred_gcc_version = v"8.1.0")


build_tarballs.jl (1.5 KB)

here are the build shared objects from SimpleITK

and here are the error, a list of errors that i am facing, how can i make sure that ITK shared objects are installed in the installation directory?

[ Info: Ignored system libraries libstdc++.so.6, libdl.so.2, libpthread.so.0, libm.so.6, libc.so.6
[ Info: Checking shared library lib/libSimpleITKBasicFilters0-2.2.so.1
ERROR: could not load library "/tmp/jl_CVitaT6P2h/oPNzJ0hw/x86_64-linux-gnu-libgfortran5-cxx11/destdir/lib/libSimpleITKBasicFilters0-2.2.so.1"
libITKCommon-5.3.so.1: cannot open shared object file: No such file or directory
┌ Warning: lib/libSimpleITKBasicFilters0-2.2.so.1 cannot be dlopen()'ed
└ @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/L8tBh/src/Auditor.jl:173
[ Info: lib/libSimpleITKBasicFilters0-2.2.so.1 already has SONAME "libSimpleITKBasicFilters0-2.2.so.1"
[ Info: Checking shared library lib/libSimpleITKBasicFilters1-2.2.so.1
ERROR: could not load library "/tmp/jl_CVitaT6P2h/oPNzJ0hw/x86_64-linux-gnu-libgfortran5-cxx11/destdir/lib/libSimpleITKBasicFilters1-2.2.so.1"
libITKLabelMap-5.3.so.1: cannot open shared object file: No such file or directory
┌ Warning: lib/libSimpleITKBasicFilters1-2.2.so.1 cannot be dlopen()'ed
└ @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/L8tBh/src/Auditor.jl:173
[ Info: lib/libSimpleITKBasicFilters1-2.2.so.1 already has SONAME "libSimpleITKBasicFilters1-2.2.so.1"
[ Info: Checking shared library lib/libSimpleITKCommon-2.2.so.1
ERROR: could not load library "/tmp/jl_CVitaT6P2h/oPNzJ0hw/x86_64-linux-gnu-libgfortran5-cxx11/destdir/lib/libSimpleITKCommon-2.2.so.1"
libITKMetaIO-5.3.so.1: cannot open shared object file: No such file or directory
┌ Warning: lib/libSimpleITKCommon-2.2.so.1 cannot be dlopen()'ed
└ @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/L8tBh/src/Auditor.jl:173
[ Info: lib/libSimpleITKCommon-2.2.so.1 already has SONAME "libSimpleITKCommon-2.2.so.1"
[ Info: Checking shared library lib/libSimpleITKIO-2.2.so.1
ERROR: could not load library "/tmp/jl_CVitaT6P2h/oPNzJ0hw/x86_64-linux-gnu-libgfortran5-cxx11/destdir/lib/libSimpleITKIO-2.2.so.1"
libITKIOGDCM-5.3.so.1: cannot open shared object file: No such file or directory
┌ Warning: lib/libSimpleITKIO-2.2.so.1 cannot be dlopen()'ed
└ @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/L8tBh/src/Auditor.jl:173
[ Info: lib/libSimpleITKIO-2.2.so.1 already has SONAME "libSimpleITKIO-2.2.so.1"
[ Info: Checking shared library lib/libSimpleITKRegistration-2.2.so.1
ERROR: could not load library "/tmp/jl_CVitaT6P2h/oPNzJ0hw/x86_64-linux-gnu-libgfortran5-cxx11/destdir/lib/libSimpleITKRegistration-2.2.so.1"
libITKRegistrationMethodsv4-5.3.so.1: cannot open shared object file: No such file or directory
┌ Warning: lib/libSimpleITKRegistration-2.2.so.1 cannot be dlopen()'ed
└ @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/L8tBh/src/Auditor.jl:173
[ Info: lib/libSimpleITKRegistration-2.2.so.1 already has SONAME "libSimpleITKRegistration-2.2.so.1"
[ Info: Checking shared library lib/libSimpleITK_ITKAnisotropicSmoothing-2.2.so.1
ERROR: could not load library "/tmp/jl_CVitaT6P2h/oPNzJ0hw/x86_64-linux-gnu-libgfortran5-cxx11/destdir/lib/libSimpleITK_ITKAnisotropicSmoothing-2.2.so.1"
libITKLabelMap-5.3.so.1: cannot open shared object file: No such file or directory
┌ Warning: lib/libSimpleITK_ITKAnisotropicSmoothing-2.2.so.1 cannot be dlopen()'ed
└ @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/L8tBh/src/Auditor.jl:173
[ Info: lib/libSimpleITK_ITKAnisotropicSmoothing-2.2.so.1 already has SONAME "libSimpleITK_ITKAnisotropicSmoothing-2.2.so.1"
[ Info: Checking shared library lib/libSimpleITK_ITKAntiAlias-2.2.so.1
ERROR: could not load library "/tmp/jl_CVitaT6P2h/oPNzJ0hw/x86_64-linux-gnu-libgfortran5-cxx11/destdir/lib/libSimpleITK_ITKAntiAlias-2.2.so.1"
libITKMathematicalMorphology-5.3.so.1: cannot open shared object file: No such file or directory
┌ Warning: lib/libSimpleITK_ITKAntiAlias-2.2.so.1 cannot be dlopen()'ed
└ @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/L8tBh/src/Auditor.jl:173
[ Info: lib/libSimpleITK_ITKAntiAlias-2.2.so.1 already has SONAME "libSimpleITK_ITKAntiAlias-2.2.so.1"
[ Info: Checking shared library lib/libSimpleITK_ITKBiasCorrection-2.2.so.1
ERROR: could not load library "/tmp/jl_CVitaT6P2h/oPNzJ0hw/x86_64-linux-gnu-libgfortran5-cxx11/destdir/lib/libSimpleITK_ITKBiasCorrection-2.2.so.1"
libITKBiasCorrection-5.3.so.1: cannot open shared object file: No such file or directory
┌ Warning: lib/libSimpleITK_ITKBiasCorrection-2.2.so.1 cannot be dlopen()'ed
└ @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/L8tBh/src/Auditor.jl:173
[ Info: lib/libSimpleITK_ITKBiasCorrection-2.2.so.1 already has SONAME "libSimpleITK_ITKBiasCorrection-2.2.so.1"
[ Info: Checking shared library lib/libSimpleITK_ITKBinaryMathematicalMorphology-2.2.so.1

error_simpleITK.txt (27.1 KB)

System: Arch linux (host) x86_64 glibc

almost all of the libITK dependencies are missing from the installation lib directory, please help. Help would be appreciated. I am using the official recommended way of using SuperBuild to build SimpleITK, my intentions are to use simpleITK via a c++ interface.

I asked the julia language community and the BinaryBuilder.jl package maintainers and they said its more of an ITK issue, within SuperBuild of the downloaded archive i checked the
Extras_ITK.cmake looked like the following :

Upong changing into ITK-build/lib i found all the files, and seems like i might have to copy them around

The behavior you are looking for is defined with in this file:

I will have time to look at it closely on Monday, but is should be possible with the configuration variables to the super build project.

Thanks for you help, i actually fixed those error by adding the ITK-Build/lib files within {prefix}/lib directory,