Error in installing gromacs by "make" command

GROMACS version: All versions
GROMACS modification: Yes/No
Here post your question
I have problem when installing all versions of Gromacs and get error with “make” command. This happens when I am trying to install all versions of gromacs as you see below:



[100%] Building CXX object api/nblib/CMakeFiles/nblib.dir/listed_forces/calculator.cpp.o
[100%] Building CXX object api/nblib/CMakeFiles/nblib.dir/simulationstate.cpp.o
/usr/bin/ld: …/…/lib/libgromacs.so.6.0.0: undefined reference to srot_' /usr/bin/ld: ../../lib/libgromacs.so.6.0.0: undefined reference to strsm_’
collect2: error: ld returned 1 exit status
make[2]: *** [src/programs/CMakeFiles/gmx.dir/build.make:82: bin/gmx] Error 1
make[1]: *** [CMakeFiles/Makefile2:6509: src/programs/CMakeFiles/gmx.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs…
[100%] Linking CXX shared library …/…/lib/libgmxapi.so
[100%] Built target gmxapi
[100%] Linking CXX shared library …/…/lib/libnblib.so
[100%] Built target nblib
make: *** [Makefile:163: all] Error 2

Is anyone here to know and solve the problem?

Hello,

To me this seems like a compiler issue. What compilers are you using? Are they up to date?

Regards,
Petter

Dear Petter
I have already installed Gromacs 2020 a few months ago and currently am using it correctly. It was installed in /usr/local. But when I want to install Gromacs 2019 in either location, I get the error at the end of the “make” command.
Please find below the command and the steps of the terminal:

cmake … -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DCMAKE_INSTALL_PREFIX=/opt/gromacs2019
– The C compiler identification is GNU 9.3.0
– The CXX compiler identification is GNU 9.3.0
– Check for working C compiler: /usr/bin/cc
– Check for working C compiler: /usr/bin/cc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Detecting C compile features
– Detecting C compile features - done
– Check for working CXX compiler: /usr/bin/c++
– Check for working CXX compiler: /usr/bin/c++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Detecting CXX compile features
– Detecting CXX compile features - done
– Looking for pthread.h
– Looking for pthread.h - found
– Performing Test CMAKE_HAVE_LIBC_PTHREAD
– Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
– Looking for pthread_create in pthreads
– Looking for pthread_create in pthreads - not found
– Looking for pthread_create in pthread
– Looking for pthread_create in pthread - found
– Found Threads: TRUE
– Performing Test CXXFLAG_STD_CXX0X
– Performing Test CXXFLAG_STD_CXX0X - Success
– Performing Test CXX11_SUPPORTED
– Performing Test CXX11_SUPPORTED - Success
– Performing Test CXX11_STDLIB_PRESENT
– Performing Test CXX11_STDLIB_PRESENT - Success
– Looking for NVIDIA GPUs present in the system
– Number of NVIDIA GPUs detected: 1
CUDA_TOOLKIT_ROOT_DIR not found or specified
– Could NOT find CUDA (missing: CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) (Required is at least version “7.0”)
– No compatible CUDA toolkit found (v5.0+), disabling native GPU acceleration
– Found OpenMP_C: -fopenmp (found version “4.5”)
– Found OpenMP_CXX: -fopenmp (found version “4.5”)
– Found OpenMP: TRUE (found version “4.5”)
– Performing Test CFLAGS_EXCESS_PREC
– Performing Test CFLAGS_EXCESS_PREC - Success
– Performing Test CFLAGS_COPT
– Performing Test CFLAGS_COPT - Success
– Performing Test CFLAGS_NOINLINE
– Performing Test CFLAGS_NOINLINE - Success
– Performing Test CXXFLAGS_EXCESS_PREC
– Performing Test CXXFLAGS_EXCESS_PREC - Success
– Performing Test CXXFLAGS_COPT
– Performing Test CXXFLAGS_COPT - Success
– Performing Test CXXFLAGS_NOINLINE
– Performing Test CXXFLAGS_NOINLINE - Success
– Looking for include file unistd.h
– Looking for include file unistd.h - found
– Looking for include file pwd.h
– Looking for include file pwd.h - found
– Looking for include file dirent.h
– Looking for include file dirent.h - found
– Looking for include file time.h
– Looking for include file time.h - found
– Looking for include file sys/time.h
– Looking for include file sys/time.h - found
– Looking for include file io.h
– Looking for include file io.h - not found
– Looking for include file sched.h
– Looking for include file sched.h - found
– Looking for include file regex.h
– Looking for include file regex.h - found
– Looking for gettimeofday
– Looking for gettimeofday - found
– Looking for sysconf
– Looking for sysconf - found
– Looking for nice
– Looking for nice - found
– Looking for fsync
– Looking for fsync - found
– Looking for _fileno
– Looking for _fileno - not found
– Looking for fileno
– Looking for fileno - found
– Looking for commit
– Looking for commit - not found
– Looking for sigaction
– Looking for sigaction - found
– Performing Test HAVE_BUILTIN_CLZ
– Performing Test HAVE_BUILTIN_CLZ - Success
– Performing Test HAVE_BUILTIN_CLZLL
– Performing Test HAVE_BUILTIN_CLZLL - Success
– Looking for clock_gettime in rt
– Looking for clock_gettime in rt - found
– Looking for feenableexcept in m
– Looking for feenableexcept in m - found
– Looking for fedisableexcept in m
– Looking for fedisableexcept in m - found
– Checking for sched.h GNU affinity API
– Performing Test sched_affinity_compile
– Performing Test sched_affinity_compile - Success
– Looking for include file mm_malloc.h
– Looking for include file mm_malloc.h - found
– Looking for include file malloc.h
– Looking for include file malloc.h - found
– Looking for include file xmmintrin.h
– Looking for include file xmmintrin.h - found
– Checking for mm_malloc()
– Checking for mm_malloc() - supported
– Looking for posix_memalign
– Looking for posix_memalign - found
– Looking for memalign
– Looking for memalign - not found
– Check if the system is big endian
– Searching 16 bit integer
– Looking for sys/types.h
– Looking for sys/types.h - found
– Looking for stdint.h
– Looking for stdint.h - found
– Looking for stddef.h
– Looking for stddef.h - found
– Check size of unsigned short
– Check size of unsigned short - done
– Using unsigned short
– Check if the system is big endian - little endian
– hwloc version:
– Found Hwloc: /usr/lib/x86_64-linux-gnu/libhwloc.so (found suitable version “2.1.0”, minimum required is “1.5”)
– Looking for C++ include pthread.h
– Looking for C++ include pthread.h - found
– Atomic operations found
– Performing Test PTHREAD_SETAFFINITY
– Performing Test PTHREAD_SETAFFINITY - Success
– Checking for GCC x86 inline asm
– Checking for GCC x86 inline asm - supported
– Did not detect build CPU vendor - detection program did not compile
– Disabling RDTSCP support - not detected on the build host
– Checking for 64-bit off_t
– Checking for 64-bit off_t - present
– Checking for fseeko/ftello
– Checking for fseeko/ftello - present
– Checking for SIGUSR1
– Checking for SIGUSR1 - found
– Checking for pipe support
– Looking for C++ include regex
– Looking for C++ include regex - found
– Checking for system XDR support
– Checking for system XDR support - present
– Detecting best SIMD instructions for this CPU
– Detection for best SIMD instructions failed, using SIMD - None
– SIMD instructions disabled
– Performing Test callconv___vectorcall
– Performing Test callconv___vectorcall - Failed
– Performing Test callconv___regcall
– Performing Test callconv___regcall - Failed
– Performing Test callconv
– Performing Test callconv - Success
– The GROMACS-managed build of FFTW 3 will configure with the following optimizations:
– Using external FFT library - FFTW3 build managed by GROMACS
– Looking for sgemm

– Looking for sgemm
- not found
– Looking for sgemm

– Looking for sgemm
- found
– Found BLAS: /home/research/amber20/lib/libblas.so
– Looking for cheev

– Looking for cheev
- not found
– Looking for cheev

– Looking for cheev
- not found
– A library with LAPACK API not found. Please specify library location.
– Using GROMACS built-in LAPACK.
– Checking for dlopen
– Performing Test HAVE_DLOPEN
– Performing Test HAVE_DLOPEN - Success
– Checking for dlopen - found
– Using dynamic plugins (e.g VMD-supported file formats)
– Checking for suitable VMD version
– Could not compile VMD version check
– Using default binary suffix: “”
– Using default library suffix: “”
– Could not convert sample image, ImageMagick convert can not be used
– Found PythonInterp: /usr/bin/python2.7 (found suitable version “2.7.18”, minimum required is “2.7”)
– Performing Test HAS_NO_UNUSED_VARIABLE
– Performing Test HAS_NO_UNUSED_VARIABLE - Success
– Performing Test HAS_NO_UNUSED
– Performing Test HAS_NO_UNUSED - Success
– Performing Test HAS_NO_MISSING_DECL
– Performing Test HAS_NO_MISSING_DECL - Success
– Performing Test HAS_NO_MISSING_PROTO
– Performing Test HAS_NO_MISSING_PROTO - Failed
– Performing Test HAS_NO_MSVC_UNUSED
– Performing Test HAS_NO_MSVC_UNUSED - Failed
– Performing Test HAS_DECL_IN_SOURCE
– Performing Test HAS_DECL_IN_SOURCE - Failed
– Check if the system is big endian
– Searching 16 bit integer
– Using unsigned short
– Check if the system is big endian - little endian
– Looking for inttypes.h
– Looking for inttypes.h - found

Downloading: http://gerrit.gromacs.org/download/regressiontests-2019.tar.gz
– [download 100% complete]
– [download 0% complete]
– [download 1% complete]

.
.
.
.-- [download 100% complete]
CMake Warning at CMakeLists.txt:921 (message):
mdrun supports native GPU acceleration on NVIDIA hardware with compute
capability >= 3.0 (Kepler or later). This requires the NVIDIA CUDA
toolkit, which was not found. Its location can be hinted by setting the
CUDA_TOOLKIT_ROOT_DIR CMake option (does not work as an environment
variable). The typical location would be /usr/local/cuda[-version]. Note
that CPU or GPU acceleration can be selected at runtime.

1 NVIDIA GPU(s) found in the system:

GeForce GTX 680

Compute capability information not available, consult the NVIDIA website:

https://developer.nvidia.com/cuda-gpus

– Configuring done
– Generating done
– Build files have been written to: /home/research/gromacs-2019/build

That looks like a linking error and suggests that something is not right with either the LAPACK library you are linking against. You can likely work around it by passing -DGMX_EXTERNAL_LAPACK=OFF to cmake – you will most likely anyway not an optimized linear algebra library.