cramerlab / warp

GNU General Public License v3.0
54 stars 16 forks source link

Docu insufficient for compiling Warp/WarpCraft on Linux - fails with two different errors. #47

Closed schloegl closed 6 months ago

schloegl commented 1 year ago

I'm trying to compile warpcraft for GNU/Linux but I fail with two different issues.

The machine I'm working was has Debian11 (gcc 10.2), cuda/11.4.4, mono/5.20. I've tried to follow all instructions in:
https://github.com/cramerlab/warpcraft/issues/2 https://github.com/cramerlab/warpcraft/issues/3 https://github.com/cramerlab/warp/issues/5

Compiling of liblion and gtom seems to work fine.

Trying to compile GPUaccelerator.dll fails with with this error:

../GPUAcceleration/../../gtom/include/../src/Optimization/dlib/optimization/../matrix/../assert.h:126:9: note: in definition of macro ‘DLIB_CASSERT’
  126 |         throw dlib::fatal_error(dlib::EBROKEN_ASSERT,dlib_o_out.str());      \
      |         ^~~~~
In file included from ../../liblion/src/projector.h:23,
                 from ../../liblion/src/backprojector.h:31,
                 from ../../liblion/liblion.h:7,
                 from ../GPUAcceleration/FFT.cpp:2:
../../liblion/src/fftw.h: In instantiation of ‘void relion::FourierTransformer::FourierTransform(T&, T1&, bool) [with T = relion::MultidimArray<float>; T1 = relion::MultidimArray<relion::Complex>]’:
../GPUAcceleration/FFT.cpp:16:54:   required from here
../../liblion/src/fftw.h:208:11: error: no matching function for call to ‘relion::FourierTransformer::setReal(relion::MultidimArray<float>&)’
  208 |    setReal(v);
      |    ~~~~~~~^~~
../../liblion/src/fftw.h:373:8: note: candidate: ‘void relion::FourierTransformer::setReal(relion::MultidimArray<double>&)’
  373 |   void setReal(MultidimArray<DOUBLE> &img);
      |        ^~~~~~~
../../liblion/src/fftw.h:373:39: note:   no known conversion for argument 1 from ‘relion::MultidimArray<float>’ to ‘relion::MultidimArray<double>&’
  373 |   void setReal(MultidimArray<DOUBLE> &img);
      |                ~~~~~~~~~~~~~~~~~~~~~~~^~~
../../liblion/src/fftw.h:380:8: note: candidate: ‘void relion::FourierTransformer::setReal(relion::MultidimArray<relion::Complex>&)’
  380 |   void setReal(MultidimArray<Complex > &img);
      |        ^~~~~~~
../../liblion/src/fftw.h:380:41: note:   no known conversion for argument 1 from ‘relion::MultidimArray<float>’ to ‘relion::MultidimArray<relion::Complex>&’
  380 |   void setReal(MultidimArray<Complex > &img);
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../../liblion/src/fftw.h: In instantiation of ‘void relion::FourierTransformer::inverseFourierTransform(T&, T1&) [with T = relion::MultidimArray<relion::Complex>; T1 = relion::MultidimArray<float>]’:
../GPUAcceleration/FFT.cpp:36:54:   required from here
../../liblion/src/fftw.h:238:11: error: no matching function for call to ‘relion::FourierTransformer::setReal(relion::MultidimArray<float>&)’
  238 |    setReal(v);
      |    ~~~~~~~^~~
../../liblion/src/fftw.h:373:8: note: candidate: ‘void relion::FourierTransformer::setReal(relion::MultidimArray<double>&)’
  373 |   void setReal(MultidimArray<DOUBLE> &img);
      |        ^~~~~~~

So this seems to be an issue with single and double precision fftw. On the host platform, I do have both, single and double precision fftw. It's not clear to me how to fix that.

Compiling of WarpLib.dll fails with

Microsoft (R) Visual C# Compiler version 2.8.2.62916 (2ad4aabc)
Copyright (C) Microsoft Corporation. All rights reserved.

error CS0006: Metadata file 'Accord.dll' could not be found
error CS0006: Metadata file 'Accord.Math.dll' could not be found
error CS0006: Metadata file 'Accord.Math.Core.dll' could not be found
error CS0006: Metadata file 'MathNet.Numerics.dll' could not be found
error CS0006: Metadata file 'BitMiracle.LibTiff.NET.dll' could not be found

As a consequence, compiling of WarpCraft.dll fails with a similar message plus WarpLib error CS0006: Metadata file 'WarpLib.dll' could not be found.

Do you have any suggestions how to fix this ?

lingbozeng commented 11 months ago

Hi! Has this issue been solved? @schloegl

schloegl commented 11 months ago

No, this issue is not resolved for me.

schloegl commented 6 months ago

The project https://github.com/warpem/warp seems to address this issue. I'm closing this.