Capo Mestre
Capo Mestre

Reputation: 301

How to solve the issue "A required library with BLAS API not found"?

I am trying to install JDFTx by simply following the instructions on the page http://jdftx.org/CompilingBasic.html.

I have installed Cygwin from here (Windows, x64): https://cygwin.com/install.html . And I also believe that I have installed necessary libraries, listed here: http://jdftx.org/Dependencies.html .

Now, when I enter in the Cygwin64 terminal the command:

cmake ../jdftx-VERSION/jdftx

I am getting the following message:

CMake Error at /usr/share/cmake-3.6.2/Modules/FindBLAS.cmake:690 (message):
  A required library with BLAS API not found.  Please specify library
  location.
Call Stack (most recent call first):
  /usr/share/cmake-3.6.2/Modules/FindLAPACK.cmake:165 (find_package)
  CMake-Modules/FindLAPACK_ATLAS.cmake:20 (find_package)
  CMakeLists.txt:85 (find_package)


-- Configuring incomplete, errors occurred!
See also "/cygdrive/c/jdftx/build/CMakeFiles/CMakeOutput.log".
See also "/cygdrive/c/jdftx/build/CMakeFiles/CMakeError.log".

The solution is to use this command instead, thus explicitly specifying the location of the library:

cmake -DLAPACK_LIBRARIES=/usr/lib/liblapack.dll.a ../jdftx-1.4.1/jdftx

However, now I am getting the following output, containing another error message:

    -- Forcing static linking for Cygwin/Windows
-- Found GSL: /lib/libgsl.dll.a
-- Found FFTW3:  /lib/libfftw3_threads.dll.a /lib/libfftw3.dll.a
-- Found LAPACK: /usr/lib/liblapack.dll.a
-- Found CBLAS: /usr/lib/libgslcblas.dll.a
-- Found MPI_C: /usr/lib/libmpi.dll.a;/usr/lib/libopen-rte.dll.a;/usr/lib/libope                                                     n-pal.dll.a;/usr/lib/libm.a;/usr/lib/w32api/libgdi32.a
CMake Warning at /usr/share/cmake-3.6.2/Modules/FindMPI.cmake:420 (message):
  Unable to find MPI library mpi_cxx
Call Stack (most recent call first):
  /usr/share/cmake-3.6.2/Modules/FindMPI.cmake:610 (interrogate_mpi_compiler)
  CMakeLists.txt:93 (find_package)


CMake Error at /usr/share/cmake-3.6.2/Modules/FindPackageHandleStandardArgs.cmak                                                     e:148 (message):
  Could NOT find MPI_CXX (missing: MPI_CXX_LIBRARIES)
Call Stack (most recent call first):
  /usr/share/cmake-3.6.2/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA                                                     _FAILURE_MESSAGE)
  /usr/share/cmake-3.6.2/Modules/FindMPI.cmake:628 (find_package_handle_standard                                                     _args)
  CMakeLists.txt:93 (find_package)


-- Configuring incomplete, errors occurred!
See also "/cygdrive/c/jdftx/build/CMakeFiles/CMakeOutput.log".
See also "/cygdrive/c/jdftx/build/CMakeFiles/CMakeError.log".

Would anyone have an idea what other option should I use in the cmake call?

Thanks!

Upvotes: 1

Views: 8586

Answers (1)

Capo Mestre
Capo Mestre

Reputation: 301

The solution is:

cmake -DLAPACK_LIBRARIES=/usr/lib/liblapack.dll.a -DMPI_CXX_LIBRARIES=/usr/lib/libmpi_mpifh.dll.a ../jdftx-1.4.1/jdftx

Now I realize, this is not a solution for the second error...

The actual solution is to uninstall all related libraries and install previous versions (instead of the newest ones). After I have done it, everything works fine.

Upvotes: 2

Related Questions