Skip to content

Compilation FAQ

K Clough edited this page Feb 2, 2018 · 35 revisions

This is an informal collection of common compilation problems and their solutions. Please add your solutions whenever you encounter a problem so that other people do not have to reinvent the wheel.

  1. A lot of errors along the lines of Vars is not a template or qualified name not allowed. Check whether you compile with the c++14 standard (-std=c++14) and that your compiler is recent enough to support the option you have chosen.

  2. undefined reference to dgemm_ etc. This is a very common error and usually means that blas and lapack aren't included correctly. Usually, adding -lblas and -llapack to syslibflags in $CHOMBO_HOME/mk/Make.defs.local does the trick.

  3. undefined reference to for_write_seq_lis etc. This has previously arisen with intel compilers and has been solved by adding -lifcore to the syslibflags in $CHOMBO_HOME/mk/Make.defs.local.

  4. When compiling with GNU compilers, sometimes we see errors complaining that template instantiation depth exceeds maximum of 25, which can be solved by changing the line in the file mk/compiler/Make.defs.GNU from

     _cxxbaseflags := -Wno-long-long -Wno-sign-compare -Wno-deprecated -ftemplate-depth-25 
    

    to

     _cxxbaseflags := -Wno-long-long -Wno-sign-compare -Wno-deprecated -lm -lc
    

    and adding -ftemplate-depth-50 to the compilers, as in

     CXX = g++ -std=c++14 -ftemplate-depth-50 -I${MKLROOT}/include
    

    See the Make.defs.local file for the finesterrae system for an example of this.

Clone this wiki locally