thuem / THUNDER

A particle-filter framework for robust cryoEM 3D reconstruction
GNU General Public License v2.0
56 stars 10 forks source link

Compiling error #10

Closed mcianfrocco closed 5 years ago

mcianfrocco commented 5 years ago

Dear developers,

I have run into this compiling error when compiling for CPU THUNDER:

[ 68%] Building CXX object CMakeFiles/core.dir/src/TabFunction.cpp.o
icpc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'
/home/cosmic2/software_dependencies/THUNDER/external/boost/boost/move/detail/unique_ptr_meta_utils.hpp(432): error: parameter type involves pointer to array of unknown bound
     static true_t  dispatch(U);
                             ^
          detected during:
            instantiation of class "boost::move_upmu::is_convertible<T, U> [with T=RFLOAT={float} (*)[], U=float (*)[]]" at line 48 of "/home/cosmic2/software_dependencies/THUNDER/external/boost/boost/move/default_delete.hpp"
            instantiation of class "boost::move_upd::def_del_compatible_cond<U, T> [with U=RFLOAT={float} [], T=float []]" at line 58 of "/home/cosmic2/software_dependencies/THUNDER/external/boost/boost/move/default_delete.hpp"
            instantiation of class "boost::move_upd::enable_def_del<U, T, Type> [with U=RFLOAT={float} [], T=float [], Type=void]" at line 76 of "/home/cosmic2/software_dependencies/THUNDER/external/boost/boost/move/default_delete.hpp"
            instantiation of class "boost::move_upd::enable_defdel_call<U, T [], Type> [with U=RFLOAT={float}, T=float, Type=void]" at line 567 of "/home/cosmic2/software_dependencies/THUNDER/external/boost/boost/move/unique_ptr.hpp"
            instantiation of "boost::movelib::unique_ptr<T, D>::~unique_ptr() [with T=RFLOAT={float} [], D=boost::movelib::default_delete<RFLOAT={float} []>]" at line 11 of "/home/cosmic2/software_dependencies/THUNDER/src/TabFunction.cpp"

/home/cosmic2/software_dependencies/THUNDER/external/boost/boost/move/detail/unique_ptr_meta_utils.hpp(432): error: parameter type involves pointer to array of unknown bound
     static true_t  dispatch(U);
                             ^
          detected during:
            instantiation of class "boost::move_upmu::is_convertible<T, U> [with T=RFLOAT={float} *, U=RFLOAT={float} (*)[]]" at line 567
            processing of template argument list for "boost::move_upmu::missing_virtual_destructor_default_delete" based on template arguments <RFLOAT={float} [], RFLOAT={float}> at line 585
            instantiation of class "boost::move_upmu::missing_virtual_destructor<boost::movelib::default_delete<T>, U> [with T=RFLOAT={float} [], U=RFLOAT={float}]" at line 185 of "/home/cosmic2/software_dependencies/THUNDER/external/boost/boost/move/default_delete.hpp"
            instantiation of "boost::move_upd::enable_defdel_call<U, T, void>::type boost::movelib::default_delete<T>::operator()(U *) const [with T=RFLOAT={float} [], U=RFLOAT={float}]" at line 567 of "/home/cosmic2/software_dependencies/THUNDER/external/boost/boost/move/unique_ptr.hpp"
            instantiation of "boost::movelib::unique_ptr<T, D>::~unique_ptr() [with T=RFLOAT={float} [], D=boost::movelib::default_delete<RFLOAT={float} []>]" at line 11 of "/home/cosmic2/software_dependencies/THUNDER/src/TabFunction.cpp"

compilation aborted for /home/cosmic2/software_dependencies/THUNDER/src/TabFunction.cpp (code 2)
make[2]: *** [CMakeFiles/core.dir/src/TabFunction.cpp.o] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/core.dir/all] Error 2
make: *** [all] Error 2

Is this an error related to the C-language used? I'm finding this error to be hard to interpret and any information would be very helpful.

Thank you, Mike

mcianfrocco commented 5 years ago

As a follow up, I'm using gcc 4.9.2

Zarrathustra commented 5 years ago

Thank you for your report.

It seems that something wrong happened when gcc 4.9.2 compiling boost package in THUNDER. We are setting up the same environment and trying to repeat your issue. We will report the result back to your as soon as possible.

Best regards.

mcianfrocco commented 5 years ago

Is there a preferred version of gcc that I should be using?

Zarrathustra commented 5 years ago

Hi, we have tested gcc4.9.2 but it successfully compiled CPU version of THUNDER, under the environment of Ubuntu + gcc4.9.2 + cmake 3.10 + mpich3.2.

Moreover, we noticed that, in your report, there is icpc: command line warning #10006: ignoring unknown option '-Wno-deprecated-declarations'. In my point of view, icpc belongs to Intel compiler. If possible, please check which C/C++ compiler you are using.

Assuming that you are using Intel compiler, we have tested Intel compiler 2018. However, it also successfully compiled CPU version of THUNDER. May you check your Intel compiler version by icpc --version command?

Finally, we recommend gcc4.2, gcc4.3, gcc4.4 and gcc4.5, which have been well tested.

Best regards!

mcianfrocco commented 5 years ago

Thank you for your response - while debugging the native environment, I have been able to successfully install THUNDER on a singularity container. Thank you - I'm closing this ticket.

Zarrathustra commented 5 years ago

Great!