【问题标题】:Unresolved MPI Fortran symbols when compiling p3dfft driver编译 p3dfft 驱动程序时未解析的 MPI Fortran 符号
【发布时间】:2017-08-17 20:57:28
【问题描述】:

我在尝试编译驱动程序 p3dfft 程序时遇到以下错误。我应该怎么做才能避免这个错误?

latish@latish-Aspire-E5-573G:~/btp/p3dfft-2.7.5/sample/C$ mpicc  -g -O2 -lmpi_f90 -o test_sine_c.x driver_sine.o ../../build/libp3dfft.a /usr/local//lib/libfftw3.a   -lgfortran -lmpichf90 -lm
../../build/libp3dfft.a(module.o): In function `ztran_f_same_many':
/home/latish/btp/p3dfft-2.7.5/build/ftran.F90:819: undefined reference to `mpi_abort_'
/home/latish/btp/p3dfft-2.7.5/build/ftran.F90:794: undefined reference to `mpi_wtime_'
/home/latish/btp/p3dfft-2.7.5/build/ftran.F90:816: undefined reference to `mpi_wtime_'
/home/latish/btp/p3dfft-2.7.5/build/ftran.F90:803: undefined reference to `mpi_wtime_'
/home/latish/btp/p3dfft-2.7.5/build/ftran.F90:812: undefined reference to `mpi_wtime_'
../../build/libp3dfft.a(module.o): In function `ztran_b_same_many':
/home/latish/btp/p3dfft-2.7.5/build/btran.F90:300: undefined reference to `mpi_abort_'
/home/latish/btp/p3dfft-2.7.5/build/btran.F90:275: undefined reference to `mpi_wtime_'
/home/latish/btp/p3dfft-2.7.5/build/btran.F90:297: undefined reference to `mpi_wtime_'
/home/latish/btp/p3dfft-2.7.5/build/btran.F90:284: undefined reference to `mpi_wtime_'
/home/latish/btp/p3dfft-2.7.5/build/btran.F90:293: undefined reference to `mpi_wtime_'
../../build/libp3dfft.a(module.o): In function `fcomm2_many':
/home/latish/btp/p3dfft-2.7.5/build/fcomm2.F90:52: undefined reference to `mpi_wtime_'
/home/latish/btp/p3dfft-2.7.5/build/fcomm2.F90:69: undefined reference to `mpi_alltoallv_'
/home/latish/btp/p3dfft-2.7.5/build/fcomm2.F90:72: undefined reference to `mpi_wtime_'
/home/latish/btp/p3dfft-2.7.5/build/fcomm2.F90:74: undefined reference to `mpi_wtime_'
/home/latish/btp/p3dfft-2.7.5/build/fcomm2.F90:79: undefined reference to `mpi_wtime_'
../../build/libp3dfft.a(module.o): In function `fcomm2':
/home/latish/btp/p3dfft-2.7.5/build/fcomm2.F90:213: undefined reference to `mpi_wtime_'
/home/latish/btp/p3dfft-2.7.5/build/fcomm2.F90:256: undefined reference to `mpi_alltoallv_'
/home/latish/btp/p3dfft-2.7.5/build/fcomm2.F90:257: undefined reference to `mpi_wtime_'


collect2: error: ld returned 1 exit status

【问题讨论】:

    标签: c mpi fftw


    【解决方案1】:

    为什么不使用 mpifort 而不是 mpicc 作为链接器? 你显然是在链接一个 Fortran 应用程序。

    另一种选择是尝试-lmpi_f90 选项 fftw 库之后

    【讨论】:

    • 这是一个 C 程序,这就是我使用 mpicc 的原因,感谢第二部分对我的帮助,在 fftw 库之后链接 mpi_f90 不会给我错误
    • 您也可以考虑构建p3dfft没有 Fortran 绑定。另外,如果您发现我最初的回答有帮助,请考虑接受。
    猜你喜欢
    • 2014-03-05
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-22
    • 2021-11-13
    • 1970-01-01
    • 2011-03-10
    相关资源
    最近更新 更多