Problem when building Pastix with cmake (release 6.2) : undefined references during the compilation of example_mdof2.c.o
Hi, I tried to install the release 6.2.0 of Pastix. I executed the following cmake command : cmake . -DPASTIX_INT64=OFF -DPASTIX_WITH_MPI=ON -DCMAKE_INSTALL_PREFIX=/home/durufle/Solve/pastix/build
The command succeeded and then I compiled with : make install
The installation stops at 78% with the following errors :
[ 78%] Building C object spm/examples/CMakeFiles/example_mdof2.dir/example_mdof2.c.o
[ 78%] Linking C executable example_mdof2
/usr/bin/ld: ../src/libspm.a(spm.c.o): in function `spmSort':
/home/durufle/Solve/pastix/spm/src/spm.c:549: undefined reference to `z_spmSort'
/usr/bin/ld: ../src/libspm.a(spm.c.o): in function `spmMergeDuplicate':
/home/durufle/Solve/pastix/spm/src/spm.c:603: undefined reference to `z_spmMergeDuplicate'
/usr/bin/ld: ../src/libspm.a(spm.c.o): in function `spmMatMat':
/home/durufle/Solve/pastix/spm/src/spm.c:1131: undefined reference to `spm_zspmm'
/usr/bin/ld: ../src/libspm.a(spm.c.o): in function `spm2Dense':
/home/durufle/Solve/pastix/spm/src/spm.c:434: undefined reference to `z_spm2dense'
/usr/bin/ld: ../src/libspm.a(spm.c.o): in function `spmNorm':
/home/durufle/Solve/pastix/spm/src/spm.c:503: undefined reference to `z_spmNorm'
/usr/bin/ld: ../src/libspm.a(spm.c.o): in function `spmPrint':
/home/durufle/Solve/pastix/spm/src/spm.c:919: undefined reference to `z_spmPrint'
/usr/bin/ld: ../src/libspm.a(spm.c.o): in function `spmExpand':
/home/durufle/Solve/pastix/spm/src/spm.c:961: undefined reference to `z_spmExpand'
/usr/bin/ld: ../src/libspm.a(spm.c.o): in function `spmMatVec':
/home/durufle/Solve/pastix/spm/src/spm.c:1035: undefined reference to `spm_zspmv'
/usr/bin/ld: ../src/libspm.a(spm.c.o): in function `spmScalMatrix':
/home/durufle/Solve/pastix/spm/src/spm.c:1261: undefined reference to `z_spmScal'
/usr/bin/ld: ../src/libspm.a(spm.c.o):(.data.rel.ro+0x18): undefined reference to `z_spmGenMat'
/usr/bin/ld: ../src/libspm.a(spm.c.o):(.data.rel.ro+0x38): undefined reference to `z_spmCheckAxb'
/usr/bin/ld: ../src/libspm.a(spm.c.o):(.data.rel.ro+0x98): undefined reference to `z_spmConvertCSC2CSR'
/usr/bin/ld: ../src/libspm.a(spm.c.o):(.data.rel.ro+0xc8): undefined reference to `z_spmConvertCSC2IJV'
/usr/bin/ld: ../src/libspm.a(spm.c.o):(.data.rel.ro+0xf8): undefined reference to `z_spmConvertCSR2CSC'
/usr/bin/ld: ../src/libspm.a(spm.c.o):(.data.rel.ro+0x158): undefined reference to `z_spmConvertCSR2IJV'
/usr/bin/ld: ../src/libspm.a(spm.c.o):(.data.rel.ro+0x188): undefined reference to `z_spmConvertIJV2CSC'
/usr/bin/ld: ../src/libspm.a(spm.c.o):(.data.rel.ro+0x1b8): undefined reference to `z_spmConvertIJV2CSR'
I tried by cloning the git repository (instead of release 6.2.0), but I obtained the same error.However, I tried to compile my own code with the following line :
mpicxx -I. -DSELDON_WITH_PASTIX -DSELDON_WITH_MPI test/program/direct_test.cpp -I/home/durufle/Solve/pastix-6.2.0/include -L/home/durufle/Solve/pastix-6.2.0 -lpastix -L/home/durufle/Solve/pastix-6.2.0/spm/src -lspm -L/home/durufle/Solve/pastix-6.2.0/kernels -lpastix_kernels -L/home/durufle/Solve/scotch_6.0.4 -lscotch -lscotcherr -I/home/durufle/Solve/pastix-6.2.0/spm/include -lhwloc -llapacke -lblas -lrt -lpthread
I obtained other undefined references that I do not reproduce here. In the documentation I did not find how to compile pastix as a library (do we need to link with -lspm or -lpastix_kernels ?). I encountered a page with the compilation command, but I did not succeed in finding that page again.