安装OpenMPI报错:C/C++编译器链接不兼容(Amazon EC2环境)
解决OpenMPI 3.0.1在Amazon EC2上的C/C++编译器链接兼容问题
我之前在Amazon EC2环境部署OpenMPI时也碰到过类似的编译器链接不兼容问题,结合你的操作步骤,给你几个具体的排查和解决方向:
1. 确认默认编译器版本是否正确
虽然你已经安装了gcc-7.3,但系统可能还在使用旧版本的编译器作为默认选项。先执行以下命令验证当前gcc和g++的版本:
gcc --version g++ --version
如果输出不是7.3.x,需要将gcc-7.3设置为默认编译器(需要sudo权限):
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100
设置完成后再次验证版本,确保切换成功。
2. 在configure时明确指定编译器
即使默认编译器已正确设置,有时候OpenMPI的configure脚本可能无法自动识别到合适的编译器,这时候可以在configure命令中直接指定gcc和g++:
./configure --prefix="/home/ubuntu/.openmpi" CC=gcc CXX=g++
这个参数会强制configure使用你指定的gcc和g++进行编译链接,避免自动识别出错。
3. 安装必要的编译依赖
Amazon EC2的基础Ubuntu镜像可能缺少一些OpenMPI编译所需的依赖库,导致链接失败。先安装这些依赖:
sudo apt-get update sudo apt-get install build-essential libibverbs-dev
安装完成后重新执行configure和后续的编译步骤。
4. 查看configure日志定位具体问题
如果以上步骤都无效,建议查看configure生成的config.log文件,里面会记录详细的错误信息——比如具体是哪个库链接失败、编译器调用时的错误参数等。你可以从日志中找到更精准的问题点,再针对性解决。
内容的提问来源于stack exchange,提问作者Woodpecker Wang




