1

我刚刚安装了 trilinos 11.0.3,现在我正在尝试使用 cmake 编译我的第一个应用程序。

我要编译的文件在这里 http://code.google.com/p/trilinos/wiki/EpetraSimpleVector

cmake尽管对于每个 trilinos 软件包,我都收到以下警告(以防万一),但第一个命令似乎有效:

    CMake Warning (dev) at /home/giorgos/Documents/TRILINOS/lib/cmake/Trilinos/
    TrilinosTargets.cmake:208 (ADD_LIBRARY):        
    ADD_LIBRARY called with SHARED option but the target platform does not
    support dynamic linking.  Building a STATIC library instead.  This may lead
    to problems.

除此之外,似乎 trilinos 的位置包含和库已正确找到

但是,该make命令会生成类似错误的列表,例如:

    /home/giorgos/Documents/mpi_tests/trilinos_test/test1/src/teuchos_test.cpp:11:
    undefined reference to `Epetra_SerialComm::Epetra_SerialComm()'

    /home/giorgos/Documents/mpi_tests/trilinos_test/test1/src/teuchos_test.cpp:16: 
    undefined reference to `Epetra_Map::Epetra_Map(int, int, Epetra_Comm const&)'

    /home/giorgos/Documents/mpi_tests/trilinos_test/test1/src/teuchos_test.cpp:19: 
    undefined reference to `Epetra_Vector::Epetra_Vector(Epetra_BlockMap const&, bool)'

    /home/giorgos/Documents/mpi_tests/trilinos_test/test1/src/teuchos_test.cpp:20: 
    undefined reference to `Epetra_Vector::Epetra_Vector(Epetra_BlockMap const&, bool)'

知道这里发生了什么吗?

(我将源文件命名为 teuchos_test.cpp 因为首先我尝试从 teuchos 包中编译一些代码,但是我收到了与上面类似的错误)

谢谢

乔戈斯

4

2 回答 2

0

您可以使用cmakemake使用 Trilinos 构建您的程序。我把你推荐给官方教程网站这里,它对这两种方法都提供了详细的解释。

于 2019-01-04T13:30:59.743 回答
-1

我无法使用 cmake 编译 trilinos 示例,但我可以通过链接我自己的所有内容来做到这一点。对于给我上述错误的例子,我做了以下

  g++ -o teuchos_test teuchos_test.cpp \ 
  -I/home/giorgos/Documents/TRILINOS/include \
  -L/home/giorgos/Documents/TRILINOS/lib -lepetra

因为它仅取决于 epetra 包(我仍然需要更改名称:))

但是,如果有人知道如何用 cmake 编译 trilinos,我会很感激这里的输入

于 2013-03-07T22:54:45.550 回答