笔者在ubuntu18上使用整合NPB和mpiP的过程中,在程序编译(make)的过程中出现了下面两个错误:
/usr/bin/ld: cannot find -lbfd
/usr/bin/ld: cannot find -liberty
经过查找mpiP的相关文档,-lbfd和-liberty库是是GNU binutils的一部分,这些库(-lbfd -liberty)为解码符号信息提供支持。
因此为了正确的编译程序,需要在系统中安装-lbfd和-liberty的库,也就是binutils库。
首先是-lbfd库的安装,
sudo apt-get install binutils-dev
其次是-liberty库的安装。Iberty库是libiberty-dev on Ubuntu 14.04及以上版本的一部分(它以前是在binutil-dev on 12.04中),所以需要单独安装libiberty-dev库。
sudo apt-get install libiberty-dev
两个库安装好之后,就可以正常编译和运行NPB程序了。