如何将-libm传递给MPICC? libimf.so:警告:feupdateenv未实现且始终失败
我是一个新手试图通过mpicc
用gcc
替换icc
来编译程序。 我已经发现 ,我需要使用以下命令进行编译
$ OMPI_CC=gcc make
但是,我收到以下错误消息( 众所周知 )
/opt/intel/fce/9.1.036/lib/libimf.so: warning: warning: feupdateenv is not implemented and will always fail
我试着这样做
$ make clean && OMPI_CC=gcc OMPI_LDFLAGS=-libm make
然后我明白了
/usr/bin/ld: cannot find -libm collect2: ld returned 1 exit status
但是,我在那里找到了文件
lrwxrwxrwx /usr/lib/libm.so -> /lib/libm.so.6 lrwxrwxrwx /lib/libm.so.6 -> libm-2.3.6.so -rw-r--r-- /lib/libm-2.3.6.so
尝试:
$ make clean $ OMPI_CC=gcc OMPI_LDFLAGS=-lm make
使用--showme
标志来确定mpicc / mpi编译器包装器使用的标志。 然后调用您自己选择的编译器(icc / gcc / pgcc / whatever)并添加相关标志,以便链接正确的MPI库。
请记住,您需要使用--showme
和包装器的文件来显示正确的标志。
更多信息请访问: http : //www.open-mpi.org/faq/? category = mpi-apps #wrapper-showme-with-no- file