elastix
elastix copied to clipboard
Non-standard build
Hi, I built version 5.0.1 from source, and it produced a bunch of static libraries, but no executable. How do we get the executables to build ? I could not find installation instructions anywhere in the repository.
Here is what it built and installed:
ls /cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Compiler/gcc9/elastix/5.0.1/*
/cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Compiler/gcc9/elastix/5.0.1/include:
Common Components Core elxInstallComponentFunctionCalls.h elxInstallComponentFunctionDeclarations.h elxSupportedImageTypes.h itkImageIOFactoryRegisterManager.h itkTransformIOFactoryRegisterManager.h
/cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Compiler/gcc9/elastix/5.0.1/lib:
libAdaGrad-5.0.a libANNlib-5.0.so libelxCommon-5.0.a libGridSampler-5.0.a libMultiResolutionRegistration-5.0.a libRandomCoordinateSampler-5.0.a libSumSquaredTissueVolumeDifferenceMetric-5.0.a
libAdaptiveStochasticGradientDescent-5.0.a libANNlib-5.0.so.1 libelxCore-5.0.a libKNNGraphAlphaMutualInformationMetric-5.0.a libMultiResolutionRegistrationWithFeatures-5.0.a libRandomSampler-5.0.a libTransformBendingEnergyPenalty-5.0.a
libAdaptiveStochasticLBFGS-5.0.a libBSplineInterpolator-5.0.a libEulerStackTransform-5.0.a libKNNlib-5.0.a libMyStandardResampler-5.0.a libRandomSamplerSparseMask-5.0.a libtransformix-5.0.a
libAdaptiveStochasticVarianceReducedGradient-5.0.a libBSplineResampleInterpolator-5.0.a libEulerTransformElastix-5.0.a libLinearInterpolator-5.0.a libNormalizedMutualInformationMetric-5.0.a libRecursiveBSplineTransform-5.0.a libTransformRigidityPenalty-5.0.a
libAdvancedAffineTransformElastix-5.0.a libBSplineStackTransform-5.0.a libFiniteDifferenceGradientDescent-5.0.a libmevisdcmtiff-5.0.a libparam-5.0.a libReducedDimensionBSplineInterpolator-5.0.a libTranslationStackTransform-5.0.a
libAdvancedBSplineTransform-5.0.a libConjugateGradient-5.0.a libFixedGenericPyramid-5.0.a libMovingGenericPyramid-5.0.a libPCAMetric2-5.0.a libReducedDimensionBSplineResampleInterpolator-5.0.a libTranslationTransformElastix-5.0.a
libAdvancedMattesMutualInformationMetric-5.0.a libCorrespondingPointsEuclideanDistanceMetric-5.0.a libFixedRecursivePyramid-5.0.a libMovingRecursivePyramid-5.0.a libPCAMetric-5.0.a libRegularStepGradientDescent-5.0.a libVarianceOverLastDimensionMetric-5.0.a
libAdvancedMeanSquaresMetric-5.0.a libDeformationFieldTransform-5.0.a libFixedSmoothingPyramid-5.0.a libMovingSmoothingPyramid-5.0.a libPowell-5.0.a libSplineKernelTransform-5.0.a libxoutlib-5.0.a
libAdvancedNormalizedCorrelationMetric-5.0.a libDistancePreservingRigidityPenalty-5.0.a libFullSampler-5.0.a libMultiInputRandomCoordinateSampler-5.0.a libPreconditionedStochasticGradientDescent-5.0.a libStandardGradientDescent-5.0.a
libAffineLogStackTransform-5.0.a libelastix-5.0.a libFullSearch-5.0.a libMultiMetricMultiResolutionRegistration-5.0.a libQuasiNewtonLBFGS-5.0.a libSumOfPairwiseCorrelationCoefficientsMetric-5.0.a
/cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Compiler/gcc9/elastix/5.0.1/lib64:
libAdaGrad-5.0.a libANNlib-5.0.so libelxCommon-5.0.a libGridSampler-5.0.a libMultiResolutionRegistration-5.0.a libRandomCoordinateSampler-5.0.a libSumSquaredTissueVolumeDifferenceMetric-5.0.a
libAdaptiveStochasticGradientDescent-5.0.a libANNlib-5.0.so.1 libelxCore-5.0.a libKNNGraphAlphaMutualInformationMetric-5.0.a libMultiResolutionRegistrationWithFeatures-5.0.a libRandomSampler-5.0.a libTransformBendingEnergyPenalty-5.0.a
libAdaptiveStochasticLBFGS-5.0.a libBSplineInterpolator-5.0.a libEulerStackTransform-5.0.a libKNNlib-5.0.a libMyStandardResampler-5.0.a libRandomSamplerSparseMask-5.0.a libtransformix-5.0.a
libAdaptiveStochasticVarianceReducedGradient-5.0.a libBSplineResampleInterpolator-5.0.a libEulerTransformElastix-5.0.a libLinearInterpolator-5.0.a libNormalizedMutualInformationMetric-5.0.a libRecursiveBSplineTransform-5.0.a libTransformRigidityPenalty-5.0.a
libAdvancedAffineTransformElastix-5.0.a libBSplineStackTransform-5.0.a libFiniteDifferenceGradientDescent-5.0.a libmevisdcmtiff-5.0.a libparam-5.0.a libReducedDimensionBSplineInterpolator-5.0.a libTranslationStackTransform-5.0.a
libAdvancedBSplineTransform-5.0.a libConjugateGradient-5.0.a libFixedGenericPyramid-5.0.a libMovingGenericPyramid-5.0.a libPCAMetric2-5.0.a libReducedDimensionBSplineResampleInterpolator-5.0.a libTranslationTransformElastix-5.0.a
libAdvancedMattesMutualInformationMetric-5.0.a libCorrespondingPointsEuclideanDistanceMetric-5.0.a libFixedRecursivePyramid-5.0.a libMovingRecursivePyramid-5.0.a libPCAMetric-5.0.a libRegularStepGradientDescent-5.0.a libVarianceOverLastDimensionMetric-5.0.a
libAdvancedMeanSquaresMetric-5.0.a libDeformationFieldTransform-5.0.a libFixedSmoothingPyramid-5.0.a libMovingSmoothingPyramid-5.0.a libPowell-5.0.a libSplineKernelTransform-5.0.a libxoutlib-5.0.a
libAdvancedNormalizedCorrelationMetric-5.0.a libDistancePreservingRigidityPenalty-5.0.a libFullSampler-5.0.a libMultiInputRandomCoordinateSampler-5.0.a libPreconditionedStochasticGradientDescent-5.0.a libStandardGradientDescent-5.0.a
libAffineLogStackTransform-5.0.a libelastix-5.0.a libFullSearch-5.0.a libMultiMetricMultiResolutionRegistration-5.0.a libQuasiNewtonLBFGS-5.0.a libSumOfPairwiseCorrelationCoefficientsMetric-5.0.a
Also, it seems to not produce shared libraries, and the usual CMake -DBUILD_SHARED_LIBS=ON gives an error, saying that this is not supported, why is that ? 🤔
I see the initial issue is a duplicate of https://github.com/SuperElastix/elastix/issues/305 and fixed by commit ed4f1b1a0
any plan on making a fixed release ?
And I see shared libraries were explicitly disabled here (https://github.com/SuperElastix/elastix/issues/202)
This is rather unfortunate. It looks to me like this https://github.com/SuperElastix/elastix/pull/145 in addition to building with position-independent-code is all that is really needed.
We explicitly always build everything with shared libraries at our site. Building with static libraries yields increased storage usage.
Thanks for bringing this up. I'm sorry there are no plans to support building shared elastix libraries. The executables should be built though, and placed in the "bin" directory. Hereby closing, please reopen if you still haven't found the executables.
For what it is worth, here is the patch needed to support shared libraries: https://github.com/ComputeCanada/easybuild-easyconfigs/blob/computecanada-main/easybuild/easyconfigs/e/elastix/elastix-5.0.1-fix-cmake-shared-libraries.patch
We have applied that in our build.