我在 centos 上用 gcc 4.8.3 编译了 mpich 3.2。一切似乎都很好。然后我写了一个简单的测试程序,
#include "mpi.h"
int main(int argc,char **argv)
{}
并使用 mpic++ 编译。然后错误返回,
/home/setups/mpich-3.2/build/lib/libmpi.so:未定义引用_intel_fast_memcpy'
/home/setups/mpich-3.2/build/lib/libmpi.so: undefined reference to
__intel_sse2_strncmp' /home/setups/mpich-3.2/build/lib/libmpi.so:未定义引用_intel_fast_memset'
/home/setups/mpich-3.2/build/lib/libmpi.so: undefined reference to
__intel_sse2_strlen'
究竟出了什么问题?我很困惑,错误似乎与intel编译器有关,但我使用gcc通过命令编译mpich,
./configure --prefix=/home/setups/mpich-3.2/build/ CC=gcc CXX=gcc F77=gfortran FC=gfortran
我已将 /home/setups/mpich-3.2/build/bin 添加到 PATH 并将 /home/setups/mpich-3.2/build/lib 添加到 LD_LIBRARY_PATH
mpicc -v 显示:</p>
mpicc for MPICH version 3.2
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/setups/gcc-4.8.3/build/libexec/gcc/x86_64-unknown-linux-gnu/4.8.3/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ./configure --prefix=/home/setups/gcc-4.8.3/build --with-gmp=/home/setups/gmp-6.1.2/build --with-mpfr=/home/setups/mpfr-3.1.5/build --with-mpc=/home/setups/mpc-1.0.3/build --disable-multilib
Thread model: posix
gcc version 4.8.3 (GCC)