Compile Errors

Issue #325 resolved
Former user created an issue

when I try to build i get the following error messages:

build/src_unrolled/sell_kacz_bmc_cm__1_4_0.cpp:672:65: error: parse error in template argument list SELECT_TMPL_1DATATYPE(mat->traits.datatype,std::complex,ret,ghost_kacz_BMC_u_plain_cm_1_4_tmpl,x,mat,b,opts);

ghost/include/ghost/types.h:233:57: error: no matching function for call to ‘ghost_kacz_BMC_u_plain_cm_1_4_tmpl(ghost_densemat&, ghost_sparsemat&, ghost_densemat*&, ghost_kacz_opts&)’ ret = func<complexclass<float> >(VA_ARGS);\

Do you have any ideas how to solve this?

Comments (17)

  1. Jonas Thies

    Hi, in principle ghost should compile with gcc 4.9.2 and later, I recently compiled it with gcc-5.4 as well. Is this the "devel" branch? There is a very outdated master brannch which I don't test regularly, there I wouldn't be surprised to see such problems.

  2. Jonas Thies

    quick test on Ubuntu 16.04 with OpenMPI and gcc 5.4 works fine for me. Can you post your operating system and cmake arguments? Sometimes it helps to delete the contents of the build directory and start over.

  3. Uriel Elias Wiebelitz

    Thank you so much!

    I'm running Arch and I compiled without any arguments... I hope this is no problem?

    I tryed deleting the build directory and building from scretch several times now :-D This all has no effect :-(

    I think I will have another try tomorrow...

    Unfortunately Clang++ 6 is not supported, yet - otherwise I would have tried this too...

  4. Jonas Thies

    ok, this looks familiar. I'm also getting these linker errors because of a missing -lcblas or something. @Dominik Ernst, could you maybe look at this? When just doing cmake .. with gcc,, and MKLROOT is not set, the executables/tests don't link. I will be gone for the rest of today and most of the week, otherwise I would try to fix it myself.

  5. Uriel Elias Wiebelitz

    Hi,

    eventually we could build GHOST with your hint concerning the BLAS_LIBRARIES!

    Unfortunately we did not make it compile using CUDA - because of not fond function-definitions, but I think this we could solve ourselves.

    Thank you for your support!

  6. Jonas Thies

    I'm not sure about CUDA but it may be that there is an implicit minimum required version like 7 or 8, we actually use 9 here already. Also, there's a dependency between the cuda version and the gcc you use, with cuda 7 you can use at most gcc 5 and so on.

  7. Uriel Elias Wiebelitz

    Thanks for the hint!

    Yes, this might be the reason - I had to use g++-5 for beeing able to at least start compiling with cuda - because of a mysterious bug in newer g++ concerning #include_next in math.h But actually I am currently on Cuda 9.2

    But for first tests Cuda might not be mandatory, I think...

  8. Dominik Ernst

    I think the required minimum Version is only cuda 7.

    I tested compilation on my own Arch Linux system, and the same problems with having to explicitly add -lcblas.

    Regarding CUDA, both

    cmake .. -DCMAKE_CXX_COMPILER=g++-5 -DCMAKE_C_COMPILER=gcc-5 -DBLAS_LIBRARIES='-lcblas'
    

    and

    cmake .. -DCUDA_HOST_COMPILER=`which gcc-5` -BLAS_LIBRARIES='-lcblas'
    

    worked on my system, whith cuda 9.2 and gcc 8 as the system compiler in the second case.

  9. Log in to comment