Я попытался собрать PESTC используя эту конфигурацию:PETSC 3.3 - Как скомпилировать и иметь все файлы libpetscSOMETHING.so?
./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
Но при компиляции моего LIB, который использует PETSc, даже если я связывал весь PETSc LIBS это жалуется на время выполнения: undefined symbol: _Z10VecGetSizeP6_p_VecPi
, и после некоторого поиска в интерн I натолкнулся на некоторые .so, что мои домашние животные не строили, такие как libpetscvec.so
или libpetscsnes.so
.
Я также обнаружил, что он сгенерирует .mod
с тем же именем этих не созданных библиотек (например: /tmp/petsc-3.3-p7/arch-linux2-c-debug/include/petscsnes.mod
).
, так что я не уверен, что мне не хватает флага, который должен сообщить компилятору, что он дает мне libs никаких модулей, а может быть, если они находятся в некоторых внешних пакетах и что я должен установить с --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