【发布时间】:2014-02-04 05:19:38
【问题描述】:
我正在尝试使用 --enable-mpi 标志在带有 linux 的 IBM 集群上安装 fftw-2.1.5 库,但此后我没有这样做。 我需要 fftw 版本 2.1.5,因为 GADGET2 代码需要该版本,并支持 mpi。
首先,我安装了 mpich-3.0.4:
cd ~/mpich-3.0.4
./configure --prefix=$HOME --enable-shared
make
make install
然后我编辑了我的 .bashrc 文件,添加:
export LD_LIBRARY_PATH="$HOME/lib"
PATH=$PATH:$HOME/bin
然后我尝试安装ffw:
./configure --prefix=$HOME/test --enable-mpi LDFLAGS=-L$HOME/lib CPPFLAGS=-I$HOME/include
但我收到一条错误消息:
checking for mpicc... mpicc
checking for MPI_Init... no
checking for MPI_Init in -lmpi... no
checking for MPI_Init in -lmpich... no
configure: error: couldn't find mpi library for --enable-mpi
我所有的 mpi 测试程序都可以正常工作,并且我能够在笔记本电脑上的 /usr/local 中安装所有东西。我试图搜索问题,但我发现我需要启用 LDFLAGS 和 CCPFLAGS,我已经这样做了。
有人知道如何解决这个问题吗?
编辑: 按照 francis 的建议,我使用了 CFLAGS 而不是 CPPFLAGS,并且通过了 ./compile 部分。但我在制作过程中收到另一个错误:
/opt/ibmcmp/vac/11.1/bin/.orig/xlc: 1501-208 (S) command option D is missing a subargument
这似乎是与 ibm 编译器 (xlc) 相关的问题。
编辑2: 通过将 mpicc 作为正确的编译器传递给带有 CC 标志的 ./configure 来解决。
对于记录,正确的命令是:
./configure --prefix=$HOME --enable-mpi --enable-type-prefix --enable-float LDFLAGS=-L$HOME/lib CFLAGS=-I$HOME/include CC=mpicc
(类型前缀和浮点数是 GADGET2 所需的额外选项)
【问题讨论】:
-
为什么
export LD_LIBRARY_PATH="$HOME/lib"周围有引号?试试echo $LD_LIBRARY_PATH看看是否设置正确。我对 fftw2.1.5 了解不多,但我会尝试使用CFLAGS。很奇怪,openmpi 或 mpich 没有安装在集群的某个地方。 -
echo $LD_LIBRARY_PATH 给出 /home/
/lib,所以没关系。它安装了 openMP 而不是 mpich,不幸的是它与 GADGET2 不兼容。我尝试使用 CFLAGS 而不是 CPPFLAGS 并且成功了! ...好吧, ./configure 部分。我编辑了我的问题。 -
已解决,如 EDIT2 中所述。谢谢。
-
你解决了吗?我会对结果感兴趣,我有类似的问题。
-
是的,参见 EDIT2。这是工作命令: ./configure --prefix=$HOME --enable-mpi --enable-type-prefix --enable-float LDFLAGS=-L$HOME/lib CFLAGS=-I$HOME/include CC= mpicc