[Trilinos-Users] [EXTERNAL] Errors in linking project to trilinos with openmpi
Elliott, James John
jjellio at sandia.gov
Wed Jul 5 11:02:14 EDT 2017
Hi, I believe you are not setting the correct INCLUDE paths
You need something like the following
# Optional, add some paths in your project directory to the include path
# include_directories("${PROJECT_SOURCE_DIR}")
# required for Trilinos
include_directories(${Trilinos_TPL_INCLUDE_DIRS})
include_directories(${Trilinos_INCLUDE_DIRS})
>From your post,
target_link_libraries(dc
${Trilinos_LIBRARIES}
${Trilinos_TPL_LIBRARIES}
${MPI_LIBRARIES}
)
What is MPI_LIBRARIES? You should only need to provide the Trilinos libraries here.
Thanks,
James
________________________________
From: Trilinos-Users <trilinos-users-bounces at trilinos.org> on behalf of Deepak Garg <deepak.garg at ingv.it>
Sent: Tuesday, July 4, 2017 2:17 AM
To: trilinos-users at trilinos.org
Subject: [EXTERNAL] [Trilinos-Users] Errors in linking project to trilinos with openmpi
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/20170705/d7606c06/attachment.html>
More information about the Trilinos-Users
mailing list