1

この構成を使用して PESTC をコンパイルしようとしました。

./configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --download-f-blas-lapack=1 --download-openmpi --with-shared-libraries

make PETSC_DIR=/tmp/petsc-3.3-p7 PETSC_ARCH=arch-linux2-c-debug all

しかし、petsc を使用するライブラリをコンパイルすると、すべての petsc ライブラリをリンクしたにもかかわらず、実行時に : のエラーが発生undefined symbol: _Z10VecGetSizeP6_p_VecPiし、インターネットで検索した後、いくつかの .so に遭遇したため、petsc がビルドされず、ライブラリがlibpetscvec.soorのようになりlibpetscsnes.soました。

.modまた、これらの生成されていないライブラリと同じ名前のものがいくつか生成されることもわかりました(例: /tmp/petsc-3.3-p7/arch-linux2-c-debug/include/petscsnes.mod)。

そのため、ライブラリにモジュールを提供しないようにコンパイラに指示するフラグが欠落しているのか、それとも外部パッケージに含まれているのか、--download-SOMEPACKAGE.

.so生成されるライブラリは次の$PETSC_DIR/$PETSC_ARCH/libとおりです。

libmca_common_sm.so
libmca_common_sm.so.1
libmca_common_sm.so.1.0.2
libmpi.so
libmpi.so.0
libmpi.so.0.0.4
libmpi_cxx.so
libmpi_cxx.so.0
libmpi_cxx.so.0.0.1
libmpi_f77.so
libmpi_f77.so.0
libmpi_f77.so.0.0.3
libmpi_f90.so
libmpi_f90.so.0
libmpi_f90.so.0.1.0
libopen-pal.so
libopen-pal.so.0
libopen-pal.so.0.0.0
libopen-rte.so
libopen-rte.so.0
libopen-rte.so.0.0.0
libopenmpi_malloc.so
libopenmpi_malloc.so.0
libopenmpi_malloc.so.0.0.0
libpetsc.so
4

1 に答える 1