[Trilinos-Users] Building against Trilinos
Ted Kord
teddy.kord at gmail.com
Fri May 13 16:46:58 MDT 2011
Hi Kara,
TrilinosConfig.cmake is in /home/tedkord/TRILINOS . It works if I set
Trilinos_PREFIX:PATH to /home/tedkord/TRILINOS:
-D Trilinos_PREFIX:PATH=/home/tedkord/TRILINOS
but not if I set it to:
-D Trilinos_PREFIX:PATH=/home/tedkord/TRILINOS/BUILD
Thanks.
Now, when trying to build didasko ex1.cpp as a test, right at the end of
running do-cmake, I get:
==
-- Looking for Epetra: -- found, compiling with -DMYAPP_EPETRA
CMake Error at CMakeLists.txt:70 (ADD_SUBDIRECTORY):
add_subdirectory given source "src" which is not an existing directory.
CMake Error at CMakeLists.txt:74 (ADD_SUBDIRECTORY):
add_subdirectory given source "test" which is not an existing directory.
-- Configuring incomplete, errors occurred!
===
What I did was:
Created a directory TEST
Created TEST/build
Created TEST/src
Cread TEST/test
Copied the do-cmake script to TEST/build
Copied ex1.cpp to TEST/src
./do-cmake in TEST/build
Ted
On 13 May 2011 22:13, Peterson, Kara J. <kjpeter at sandia.gov> wrote:
> Hi Ted,
>
> Can you double check that you have the following line set to the path to
> your build directory of Trilinos? There should be a TrilinosConfig.cmake
> file in the top level of that directory.
>
> -D Trilinos_PREFIX:PATH=/home/tedkord/TRILINOS/BUILD
>
> I can reproduce the error you got below when I point to a directory other
> than the build directory, such as the directory containing the Trilinos
> source.
>
> Regards,
>
> Kara
>
>
> From: Ted Kord <teddy.kord at gmail.com>
> Date: Fri, 13 May 2011 21:39:13 +0100
> To: Kara Peterson <kjpeter at sandia.gov>
> Cc: "trilinos-users at software.sandia.gov" <
> trilinos-users at software.sandia.gov>
> Subject: Re: [Trilinos-Users] Building against Trilinos
>
> Hi Kara,
>
> I've replaced the CMakeLists.txt in the directory above the build
> directory. The output from running the do-cmake script is now:
>
> CMake Error at CMakeLists.txt:11 (FIND_PACKAGE):
> Could not find module FindTrilinos.cmake or a configuration file for
> package Trilinos.
>
> Adjust CMAKE_MODULE_PATH to find FindTrilinos.cmake or set Trilinos_DIR
> to
> the directory containing a CMake configuration file for Trilinos. The
> file
> will have one of the following names:
>
> TrilinosConfig.cmake
> trilinos-config.cmake
>
> Found Trilinos! Here are the details:
> Trilinos_DIR = Trilinos_DIR-NOTFOUND
> Trilinos_VERSION =
> Trilinos_PACKAGE_LIST =
> Trilinos_LIBRARIES =
> Trilinos_INCLUDE_DIRS =
> Trilinos_LIBRARY_DIRS =
> Trilinos_TPL_LIST =
> Trilinos_TPL_INCLUDE_DIRS =
> Trilinos_TPL_LIBRARIES =
> Trilinos_TPL_LIBRARY_DIRS =
> Trilinos_BUILD_SHARED_LIBS =
> End of Trilinos details
>
> -- The C compiler identification is GNU
> -- The CXX compiler identification is GNU
> -- Check for working C compiler: /usr/bin/gcc
> -- Check for working C compiler: /usr/bin/gcc -- works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - 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
> -- Checking if MPI is enabled in Trilinos:
> -- Checking if MPI is enabled in Trilinos: MPI NOT ENABLED
> -- Looking for Epetra:
> -- Looking for Epetra: -- not found.
> -- Configuring incomplete, errors occurred!
>
>
> do-cmake script:
> =============
> cmake \
> -D Trilinos_PREFIX:PATH=/home/tedkord/TRILINOS/BUILD \
> -D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
> ..
>
> Ted
>
>
> On 13 May 2011 21:25, Peterson, Kara J. <kjpeter at sandia.gov> wrote:
>
>> Hi Ted,
>>
>> The problem is apparently in the CMakeLists.txt file in the
>> buildAgainstTrilinos directory, which I believe is looking for an installed
>> Trilinos based on how it is searching. I've attached a revised
>> CMakeLists.txt file that should work with the do-cmake that I suggested
>> below, which defines Trilinos_PREFIX and not MYAPP_TRILINOS_DIR. Just
>> replace the CMakeLists.txt in the directory above the build directory with
>> the one attached.
>>
>> Regarding the errors you are getting when you try to compile the Didasko
>> example, it looks like the code is not linking to your MPI library
>> correctly. Try again once you get the do-cmake working correctly. Hopefully,
>> when the do-cmake finds Trilinos all the dependencies will be treated
>> correctly automatically.
>>
>> Kara
>>
>> From: Ted Kord <teddy.kord at gmail.com>
>> Date: Fri, 13 May 2011 20:58:13 +0100
>> To: Kara Peterson <kjpeter at sandia.gov>
>> Cc: "trilinos-users at software.sandia.gov" <
>> trilinos-users at software.sandia.gov>
>> Subject: Re: [Trilinos-Users] Building against Trilinos
>>
>> On reflection, this still means my Trilinos build is still not being
>> found. What could be the problem?
>>
>> Ted
>>
>>
>> On 13 May 2011 19:46, Ted Kord <teddy.kord at gmail.com> wrote:
>>
>>> Hi Kara,
>>>
>>> Now I get:
>>>
>>> ==
>>> MyApp Error: cmake must define MYAPP_TRILINOS_DIR:
>>>
>>> (-D MYAPP_TRILINOS_DIR:FILEPATH=<trilinos_install_prefix>)!
>>>
>>> ==
>>>
>>> On a related note, when I try to build didaskos ex1.cpp on its own (as
>>> a test) using the do-cmake script, my Trilinos Build is located but when I
>>> 'make', I get undefined references:
>>>
>>> <culled>
>>> make[2]: Leaving directory `/home/tedkord/TESTS/build'
>>> make -f CMakeFiles/MyApp.exe.dir/build.make
>>> CMakeFiles/MyApp.exe.dir/build
>>> make[2]: Entering directory `/home/tedkord/TESTS/build'
>>> /usr/bin/cmake -E cmake_progress_report
>>> /home/tedkord/TESTS/build/CMakeFiles 1
>>> [100%] Building CXX object CMakeFiles/MyApp.exe.dir/ex1.o
>>> /usr/bin/c++
>>> -I/home/tedkord/trilinos-10.6.4-Source/packages/didasko/src -o
>>> CMakeFiles/MyApp.exe.dir/ex1.o -c /home/tedkord/TESTS/ex1.cpp
>>> Linking CXX executable MyApp.exe
>>> /usr/bin/cmake -E cmake_link_script CMakeFiles/MyApp.exe.dir/link.txt
>>> --verbose=1
>>> /usr/bin/c++ CMakeFiles/MyApp.exe.dir/ex1.o -o MyApp.exe -rdynamic
>>> libmyappLib.a
>>> CMakeFiles/MyApp.exe.dir/ex1.o: In function `main':
>>> ex1.cpp:(.text+0x21): undefined reference to `MPI_Init'
>>> ex1.cpp:(.text+0x26): undefined reference to `ompi_mpi_comm_world'
>>> ex1.cpp:(.text+0x35): undefined reference to
>>> `Epetra_MpiComm::Epetra_MpiComm(ompi_communicator_t*)'
>>> ex1.cpp:(.text+0xae): undefined reference to `Epetra_MpiComm::Barrier()
>>> const'
>>> ex1.cpp:(.text+0xe1): undefined reference to
>>> `Epetra_MpiComm::Broadcast(double*, int, int) const'
>>> ex1.cpp:(.text+0xfe): undefined reference to
>>> `Epetra_MpiComm::Broadcast(int*, int, int) const'
>>> ex1.cpp:(.text+0x11a): undefined reference to
>>> `Epetra_MpiComm::GatherAll(double*, double*, int) const'
>>> ex1.cpp:(.text+0x140): undefined reference to
>>> `Epetra_MpiComm::SumAll(double*, double*, int) const'
>>> ex1.cpp:(.text+0x15c): undefined reference to
>>> `Epetra_MpiComm::MaxAll(double*, double*, int) const'
>>> ex1.cpp:(.text+0x182): undefined reference to
>>> `Epetra_MpiComm::ScanSum(double*, double*, int) const'
>>> ex1.cpp:(.text+0x1fa): undefined reference to `MPI_Finalize'
>>> ex1.cpp:(.text+0x20b): undefined reference to
>>> `Epetra_MpiComm::~Epetra_MpiComm()'
>>> ex1.cpp:(.text+0x227): undefined reference to
>>> `Epetra_MpiComm::~Epetra_MpiComm()'
>>> CMakeFiles/MyApp.exe.dir/ex1.o: In function
>>> `MPI::Intracomm::Intracomm()':
>>> ex1.cpp:(.text._ZN3MPI9IntracommC2Ev[MPI::Intracomm::Intracomm()]+0x14):
>>> undefined reference to `MPI::Comm::Comm()'
>>> CMakeFiles/MyApp.exe.dir/ex1.o: In function
>>> `MPI::Datatype::Create_contiguous(int) const':
>>> ex1.cpp:(.text._ZNK3MPI8Datatype17Create_contiguousEi[MPI::Datatype::Create_contiguous(int)
>>> const]+0x28): undefined reference to `MPI_Type_contiguous'
>>> CMakeFiles/MyApp.exe.dir/ex1.o: In function
>>> `MPI::Datatype::Create_vector(int, int, int) const':
>>> ex1.cpp:(.text._ZNK3MPI8Datatype13Create_vectorEiii[MPI::Datatype::Create_vector(int,
>>> int, int) const]+0x35): undefined reference to `MPI_Type_vector'
>>> CMakeFiles/MyApp.exe.dir/ex1.o: In function
>>> `MPI::Datatype::Create_indexed(int, int const*, int const*) const':
>>> ex1.cpp:(.text._ZNK3MPI8Datatype14Create_indexedEiPKiS2_[MPI::Datatype::Create_indexed(int,
>>> int const*, int const*) const]+0x38): undefined reference to
>>> `MPI_Type_indexed'
>>> CMakeFiles/MyApp.exe.dir/ex1.o: In function
>>> `MPI::Datatype::Create_hindexed(int, int const*, long const*) const':
>>> ex1.cpp:(.text._ZNK3MPI8Datatype15Create_hindexedEiPKiPKl[MPI::Datatype::Create_hindexed(int,
>>> int const*, long const*) const]+0x38): undefined reference to
>>> `MPI_Type_create_hindexed'
>>> CMakeFiles/MyApp.exe.dir/ex1.o: In function
>>> `MPI::Datatype::Create_hvector(int, int, long) const':
>>> ex1.cpp:(.text._ZNK3MPI8Datatype14Create_hvectorEiil[MPI::Datatype::Create_hvector(int,
>>> int, long) const]+0x36): undefined reference to `MPI_Type_create_hvector'
>>> CMakeFiles/MyApp.exe.dir/ex1.o: In function
>>> `MPI::Datatype::Create_indexed_block(int, int, int const*) const':
>>> ex1.cpp:(.text._ZNK3MPI8Datatype20Create_indexed_blockEiiPKi[MPI::Datatype::Create_indexed_block(int,
>>> int, int const*) const]+0x36): undefined reference to
>>> `MPI_Type_create_indexed_block'
>>> CMakeFiles/MyApp.exe.dir/ex1.o: In function
>>> `MPI::Datatype::Create_resized(long, long) const':
>>>
>>> </culled>
>>>
>>> Ted
>>>
>>>
>>> On 13 May 2011 15:49, Peterson, Kara J. <kjpeter at sandia.gov> wrote:
>>>
>>>> Hi Ted,
>>>>
>>>> Try changing your do-cmake file to the following:
>>>>
>>>> cmake \
>>>> -D Trilinos_PREFIX:PATH=/home/tedkord/TRILINOS/BUILD \
>>>> -D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
>>>> ..
>>>>
>>>> This should enable cmake to locate your Trilinos build.
>>>>
>>>>
>>>> Regards,
>>>>
>>>> Kara
>>>>
>>>>
>>>>
>>>> From: Ted Kord <teddy.kord at gmail.com>
>>>> Date: Fri, 13 May 2011 14:45:44 +0100
>>>> To: <trilinos-users at software.sandia.gov>
>>>> Subject: [Trilinos-Users] Building against Trilinos
>>>>
>>>> I'm trying to test this out but with no success so far. I've gone into
>>>> the:
>>>>
>>>> trilinos-10.6.4-Source/demos/buildAgainstTrilinos/build directory.
>>>>
>>>> I've modified the do-cmake script as follows:
>>>>
>>>> <do-cmake>
>>>> rm CMakeCache.txt
>>>>
>>>> cmake \
>>>> -D MYAPP_TRILINOS_DIR:FILEPATH=/home/tedkord/TRILINOS/BUILD \
>>>> -D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
>>>> ..
>>>> </do-cmake>
>>>>
>>>> When I run the do-cmake script, I get:
>>>>
>>>> ====
>>>> CMake Warning at CMakeLists.txt:12 (FIND_PACKAGE):
>>>> Could not find a configuration file for package Trilinos.
>>>>
>>>> Set Trilinos_DIR to the directory containing a CMake configuration
>>>> file for
>>>> Trilinos. The file will have one of the following names:
>>>>
>>>> TrilinosConfig.cmake
>>>> trilinos-config.cmake
>>>>
>>>>
>>>>
>>>> CMake Error at CMakeLists.txt:15 (MESSAGE):
>>>> Could not find Trilinos!
>>>>
>>>>
>>>> -- Configuring incomplete, errors occurred!
>>>> ====
>>>>
>>>> TrilinosConfig.cmake is in "home/tedkord/TRILINOS" but Trilinos is
>>>> installed in "home/tedkord/TRILINOS/BUILD". In any case, using both
>>>> directories gives the same error as above.
>>>>
>>>> --
>>>> Best regards,
>>>>
>>>> Theodore
>>>>
>>>>
>>>> _______________________________________________ Trilinos-Users
>>>> mailing list Trilinos-Users at software.sandia.gov
>>>> http://software.sandia.gov/mailman/listinfo/trilinos-users
>>>>
>>>
>>>
>>>
>>> --
>>> Best regards,
>>>
>>> Theodore
>>>
>>>
>>>
>>
>>
>> --
>> Best regards,
>>
>> Theodore
>>
>>
>>
>
>
> --
> Best regards,
>
> Theodore
>
>
>
--
Best regards,
Theodore
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://software.sandia.gov/pipermail/trilinos-users/attachments/20110513/9e60b550/attachment-0001.html
More information about the Trilinos-Users
mailing list