按照tarball顶层目录中的安装文件中的说明,我执行了
cp Make.inc/Makefile.debian.PAR ./Makefile.inc然后我运行make。但是,我遇到了以下错误。
make[1]: Entering directory '../MUMPS_5.2.1/examples'
mpif90 -O -fopenmp -I. -I../include -I../src -c dsimpletest.F -o dsimpletest.o
mpif90 -o dsimpletest -O -fopenmp dsimpletest.o ../lib/libdmumps.a ../lib/libmumps_common.a
-L/usr/lib -lmetis -L../PORD/lib/ -lpord -L/usr/lib -lesmumps -lscotch -lscotcherr -lscalapack-
openmpi -llapack -lblas -lpthread
/usr/bin/ld: ../lib/libdmumps.a(dend_driver.o): undefined reference to symbol 'blacs_gridexit_'
//usr/lib/libblacs-openmpi.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:36: recipe for target 'dsimpletest' failed
make[1]: *** [dsimpletest] Error 1
make[1]: Leaving directory '/.../MUMPS_5.2.1/examples'
Makefile:52: recipe for target 'dexamples' failed
make: *** [dexamples] Error 2为了找出错误的根源,我依次尝试了每种精度
make s # single precision real
make d # double precision real
make c # complex
make z # double complex他们中的每一个都跑到完成了。这只是没有编译的示例,下面的命令都不起作用。它们都由于相同的错误而失败。
make sexamples
make dexamples
make cexamples
make zexamples常见错误:
mpif90 -o dsimpletest -O -fopenmp dsimpletest.o ../lib/libdmumps.a ../lib/libmumps_common.a
-L/usr/lib -lmetis -L../PORD/lib/ -lpord -L/usr/lib -lesmumps -lscotch -lscotcherr -lscalapack-
openmpi -llapack -lblas -lpthread
/usr/bin/ld: ../lib/libdmumps.a(dend_driver.o): undefined reference to symbol 'blacs_gridexit_'
//usr/lib/libblacs-openmpi.so.1: error adding symbols: DSO missing from command line我安装了所有包含blacs的包,但是仍然不能工作。
sudo apt install libscalapack-openmpi1
sudo apt install libscalapack-mpi-dev
sudo apt install libblacs-mpi-dev
sudo apt install libblacs-openmpi1
sudo apt install blacs-mpi-test blacs-test-common下一步要做什么?
发布于 2019-11-11 15:57:36
tarball中的examples目录有自己的Makefile。它从toplevel目录导入Makefile.inc
原始的Makefile.inc
LIBBLAS = -lblas
LIBOTHERS = -lpthread如果您已经安装了上面所有的blacs包,那么您的/usr/lib将如下所示
find . -iname "*blacs*"
./libblacs-openmpi.so.1.1
./libblacsF77init-openmpi.a
./libblacsCinit-openmpi.so.1
./libblacsF77init-openmpi.so.1
./blacs
./blacs/fblacs_test_shared-openmpi
./blacs/cblacs_test_shared-openmpi
./blacs/fblacs_test_static-openmpi
./blacs/cblacs_test_static-openmpi
./libblacsCinit-openmpi.a
./libblacs-openmpi.a
./libblacsCinit-openmpi.so.1.1
./libblacsF77init-openmpi.so.1.1
./libblacs-openmpi.so
./libblacsF77init-openmpi.so
./libblacsCinit-openmpi.so
./libblacs-openmpi.so.1将Makefile.inc中的行更改为
LIBBLAS = -lblas
LIBOTHERS = -lpthread -lblacs-openmpi一切都开始为我工作了。执行的编译器命令现在是
mpif90 -o dsimpletest -O -fopenmp dsimpletest.o ../lib/libdmumps.a ../lib/libmumps_common.a
-L/usr/lib -lmetis -L../PORD/lib/ -lpord -L/usr/lib -lesmumps -lscotch -lscotcherr -lscalapack-
openmpi -llapack -lblas -lpthread -lblacs-openmpi..。与没有-lblacs-openmpi链接器命令的原始命令相反。
现在,examples目录包含了所有构建的可执行示例。
https://stackoverflow.com/questions/58797477
复制相似问题