[Trilinos-Users] Errors in linking project to trilinos with openmpi

Deepak Garg deepak.garg at ingv.it
Tue Jul 4 04:17:13 EDT 2017


HI there,

I am trying to link trilinos libraries with openmpi to my program. I used
with following configuration script



#!/bin/bash
EXTRA_ARGS=$@
/home/garg/softwares/cmake/3.2.3/bin/cmake \
          -D
CMAKE_INSTALL_PREFIX:PATH="/home/garg/softwares/trilinos/12.10.1" \
          -D CMAKE_BUILD_TYPE:STRING=RELEASE \
          -D Trilinos_ENABLE_EpetraExt=ON \
          -D Trilinos_ENABLE_Epetra=ON \
          -D Trilinos_ENABLE_Belos=ON \
          -D Trilinos_ENABLE_Teuchos=ON \
          -D Trilinos_ENABLE_Ifpack=ON \
          -D Trilinos_ENABLE_CXX11=ON \
          -D TPL_ENABLE_MPI:BOOL=ON \
          -D
MPI_BASE_DIR:PATH="/share/apps/openmpi-2.1_gcc-7.1/lib/openmpi" \
          -D MPI_BIN_DIR:PATH="/share/apps/openmpi-2.1_gcc-7.1/bin" \
          -D BUILD_SHARED_LIBS:BOOL=ON \
          -D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON \
          -D Trilinos_ENABLE_TESTS:BOOL=ON \
          -D LAPACK_LIBRARY_NAMES:STRING="lapack" \
          -D
LAPACK_LIBRARY_DIRS:PATH="/home/garg/softwares/lapack/lapack-3.5.0" \
          -D BLAS_LIBRARY_DIRS:PATH="/home/garg/softwares/blas/BLAS" \
 $EXTRA_ARGS \
          ..




Trilinos is installed successfully without any problem. For my program I
use the following CMakeLists.txt



SET(CMAKE_PREFIX_PATH ${Trilinos_PREFIX} ${CMAKE_PREFIX_PATH})
 FIND_PACKAGE(Trilinos REQUIRED)

IF(Trilinos_FOUND)
   MESSAGE("\nFound Trilinos!  Here are the details: ")
   MESSAGE("   Trilinos_DIR = ${Trilinos_DIR}")
   MESSAGE("   Trilinos_VERSION = ${Trilinos_VERSION}")
   MESSAGE("   Trilinos_PACKAGE_LIST = ${Trilinos_PACKAGE_LIST}")
   MESSAGE("   Trilinos_LIBRARIES = ${Trilinos_LIBRARIES}")
   MESSAGE("   Trilinos_INCLUDE_DIRS = ${Trilinos_INCLUDE_DIRS}")
   MESSAGE("   Trilinos_TPL_LIST = ${Trilinos_TPL_LIST}")
   MESSAGE("   Trilinos_TPL_INCLUDE_DIRS = ${Trilinos_TPL_INCLUDE_DIRS}")
   MESSAGE("   Trilinos_TPL_LIBRARIES = ${Trilinos_TPL_LIBRARIES}")
   MESSAGE("   Trilinos_BUILD_SHARED_LIBS = ${Trilinos_BUILD_SHARED_LIBS}")
   MESSAGE("   Trilinos_CXX_COMPILER = ${Trilinos_CXX_COMPILER}")
   MESSAGE("   Trilinos_C_COMPILER = ${Trilinos_C_COMPILER}")
   MESSAGE("   Trilinos_Fortran_COMPILER = ${Trilinos_Fortran_COMPILER}")
   MESSAGE("   Trilinos_CXX_COMPILER_FLAGS =
${Trilinos_CXX_COMPILER_FLAGS}")
   MESSAGE("   Trilinos_C_COMPILER_FLAGS = ${Trilinos_C_COMPILER_FLAGS}")
   MESSAGE("   Trilinos_Fortran_COMPILER_FLAGS =
${Trilinos_Fortran_COMPILER_FLAGS}")
   MESSAGE("   Trilinos_LINKER = ${Trilinos_LINKER}")
   MESSAGE("   Trilinos_EXTRA_LD_FLAGS = ${Trilinos_EXTRA_LD_FLAGS}")
   MESSAGE("   Trilinos_AR = ${Trilinos_AR}")
   MESSAGE("End of Trilinos details\n")
ELSE()
  MESSAGE(FATAL_ERROR "Could not find Trilinos!")
ENDIF()

# Make sure to use same compilers and flags as Trilinos
SET(CMAKE_CXX_COMPILER ${Trilinos_CXX_COMPILER} )
SET(CMAKE_C_COMPILER ${Trilinos_C_COMPILER} )
SET(CMAKE_Fortran_COMPILER ${Trilinos_Fortran_COMPILER} )
SET(CMAKE_CXX_FLAGS  "${Trilinos_CXX_COMPILER_FLAGS} ${CMAKE_CXX_FLAGS}")
SET(CMAKE_C_FLAGS  "${Trilinos_C_COMPILER_FLAGS} ${CMAKE_C_FLAGS}")
SET(CMAKE_Fortran_FLAGS  "${Trilinos_Fortran_COMPILER_FLAGS}
${CMAKE_Fortran_FLAGS}")

INCLUDE_DIRECTORIES(${Trilinos_INCLUDE_DIRS} ${Trilinos_TPL_INCLUDE_DIRS})
LINK_DIRECTORIES(${Trilinos_LIBRARY_DIRS} ${Trilinos_TPL_LIBRARY_DIRS})
set(SOURCES  main.cpp)
add_executable(dc ${SOURCES})

target_link_libraries(dc
  ${Trilinos_LIBRARIES}
  ${Trilinos_TPL_LIBRARIES}
  ${MPI_LIBRARIES}
)




When I run the configure script, I get the following output



Found Trilinos!  Here are the details:
   Trilinos_DIR = /home/garg/softwares/trilinos/12.10.1/lib/cmake/Trilinos
   Trilinos_VERSION = 12.10.1
   Trilinos_PACKAGE_LIST =
Belos;ML;Ifpack;Amesos;Galeri;AztecOO;Isorropia;Xpetra;Thyra;ThyraTpetraAdapters;ThyraEpetraExtAdapters;ThyraEpetraAdapters;ThyraCore;EpetraExt;Tpetra;TpetraCore;TpetraTSQR;TpetraKernels;TpetraClassic;Triutils;Zoltan;Epetra;RTOp;Teuchos;TeuchosKokkosComm;TeuchosKokkosCompat;TeuchosRemainder;TeuchosNumerics;TeuchosComm;TeuchosParameterList;TeuchosCore;Kokkos;KokkosAlgorithms;KokkosContainers;KokkosCore
   Trilinos_LIBRARIES =
belostpetra;belosepetra;belos;aztecoo;thyratpetra;thyraepetraext;thyraepetra;thyracore;epetraext;tpetraext;tpetrainout;tpetra;kokkostsqr;tpetrakernels;tpetraclassiclinalg;tpetraclassicnodeapi;tpetraclassic;triutils;epetra;rtop;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkosalgorithms;kokkoscontainers;kokkoscore;ml;ifpack;amesos;galeri-xpetra;galeri-epetra;aztecoo;isorropia;xpetra-sup;xpetra;thyratpetra;thyraepetraext;thyraepetra;thyracore;epetraext;tpetraext;tpetrainout;tpetra;kokkostsqr;tpetrakernels;tpetraclassiclinalg;tpetraclassicnodeapi;tpetraclassic;triutils;zoltan;epetra;rtop;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkosalgorithms;kokkoscontainers;kokkoscore;ifpack;amesos;aztecoo;epetraext;triutils;epetra;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;amesos;epetraext;triutils;epetra;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;galeri-xpetra;galeri-epetra;xpetra-sup;xpetra;thyratpetra;thyraepetraext;thyraepetra;thyracore;epetraext;tpetraext;tpetrainout;tpetra;kokkostsqr;tpetrakernels;tpetraclassiclinalg;tpetraclassicnodeapi;tpetraclassic;triutils;epetra;rtop;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkosalgorithms;kokkoscontainers;kokkoscore;aztecoo;triutils;epetra;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;isorropia;epetraext;tpetraext;tpetrainout;tpetra;kokkostsqr;tpetrakernels;tpetraclassiclinalg;tpetraclassicnodeapi;tpetraclassic;triutils;zoltan;epetra;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkosalgorithms;kokkoscontainers;kokkoscore;xpetra-sup;xpetra;thyratpetra;thyraepetraext;thyraepetra;thyracore;epetraext;tpetraext;tpetrainout;tpetra;kokkostsqr;tpetrakernels;tpetraclassiclinalg;tpetraclassicnodeapi;tpetraclassic;triutils;epetra;rtop;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkosalgorithms;kokkoscontainers;kokkoscore;thyratpetra;thyraepetraext;thyraepetra;thyracore;epetraext;tpetraext;tpetrainout;tpetra;kokkostsqr;tpetrakernels;tpetraclassiclinalg;tpetraclassicnodeapi;tpetraclassic;triutils;epetra;rtop;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkosalgorithms;kokkoscontainers;kokkoscore;thyratpetra;thyraepetra;thyracore;tpetraext;tpetrainout;tpetra;kokkostsqr;tpetrakernels;tpetraclassiclinalg;tpetraclassicnodeapi;tpetraclassic;epetra;rtop;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkosalgorithms;kokkoscontainers;kokkoscore;thyraepetraext;thyraepetra;thyracore;epetraext;triutils;epetra;rtop;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;thyraepetra;thyracore;epetra;rtop;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;thyracore;rtop;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;epetraext;triutils;epetra;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;tpetraext;tpetrainout;tpetra;kokkostsqr;tpetrakernels;tpetraclassiclinalg;tpetraclassicnodeapi;tpetraclassic;epetra;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkosalgorithms;kokkoscontainers;kokkoscore;tpetraext;tpetrainout;tpetra;kokkostsqr;tpetrakernels;tpetraclassiclinalg;tpetraclassicnodeapi;tpetraclassic;epetra;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkosalgorithms;kokkoscontainers;kokkoscore;kokkostsqr;tpetraclassiclinalg;tpetraclassicnodeapi;tpetraclassic;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;tpetrakernels;teuchoscomm;teuchosparameterlist;teuchoscore;kokkosalgorithms;kokkoscontainers;kokkoscore;tpetraclassiclinalg;tpetraclassicnodeapi;tpetraclassic;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;triutils;epetra;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;zoltan;epetra;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;rtop;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;teuchoskokkoscomm;teuchoskokkoscompat;teuchosremainder;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;teuchoskokkoscomm;teuchoskokkoscompat;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;teuchoskokkoscompat;teuchosparameterlist;teuchoscore;kokkoscore;teuchosremainder;teuchoscore;kokkoscore;teuchosnumerics;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;teuchoscomm;teuchosparameterlist;teuchoscore;kokkoscore;teuchosparameterlist;teuchoscore;kokkoscore;teuchoscore;kokkoscore;kokkoscore;kokkosalgorithms;kokkoscore;kokkoscontainers;kokkoscore;kokkoscore
   Trilinos_INCLUDE_DIRS = /home/garg/softwares/trilinos/12.10.1/include
   Trilinos_TPL_LIST = DLlib;LAPACK;BLAS;MPI;Pthread
   Trilinos_TPL_INCLUDE_DIRS =
   Trilinos_TPL_LIBRARIES =
/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/usr/lib64/libdl.so;/usr/lib64/libdl.so;/usr/lib64/libdl.so;/home/garg/softwares/lapack/lapack-3.5.0/liblapack.a;/home/garg/softwares/blas/BLAS/libblas.so;/usr/lib64/libdl.so;/usr/lib64/libdl.so;/usr/lib64/libdl.so;/usr/lib64/libdl.so;/usr/lib64/libdl.so;/usr/lib64/libdl.so;/usr/lib64/libdl.so
   Trilinos_BUILD_SHARED_LIBS = ON
   Trilinos_CXX_COMPILER = /share/apps/openmpi-2.1_gcc-7.1/bin/mpicxx
   Trilinos_C_COMPILER = /share/apps/openmpi-2.1_gcc-7.1/bin/mpicc
   Trilinos_Fortran_COMPILER = /share/apps/openmpi-2.1_gcc-7.1/bin/mpif90
   Trilinos_CXX_COMPILER_FLAGS =  -std=c++11 -O3 -DNDEBUG
   Trilinos_C_COMPILER_FLAGS =  -O3 -DNDEBUG
   Trilinos_Fortran_COMPILER_FLAGS =  -O3
   Trilinos_LINKER = /usr/bin/ld
   Trilinos_EXTRA_LD_FLAGS =
   Trilinos_AR = /usr/bin/ar
End of Trilinos details




It seems that all flags and compiler paths are recognised but when I try to
compile my program I get a number of errors showing

error: ‘MPI’ has not been declared.

What should I do to solve this problem? Any suggestion will be a great help.




Many thanks in advance
Deepak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://trilinos.org/pipermail/trilinos-users/attachments/20170704/25cd73bd/attachment.html>


More information about the Trilinos-Users mailing list