I am a newbie who tries to compile a program via mpicc
replacing icc
with gcc
. I have already discovered, that I need to use the following command to compile
$ OMPI_CC=gcc make
However, I get the following error message (which is well-known)
/opt/intel/fce/9.1.036/lib/libimf.so: warning: warning: feupdateenv is not implemented and will always fail
I try to do
$ make clean && OMPI_CC=gcc OMPI_LDFLAGS=-libm make
Then I see
/usr/bin/ld: cannot find -libm
collect开发者_开发技巧2: ld returned 1 exit status
However, I find the file there
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
Try:
$ make clean
$ OMPI_CC=gcc OMPI_LDFLAGS=-lm make
Use the --showme
flag to determine the flags used by mpicc/mpi compiler wrappers. Then invoke your own compiler of choice (icc/gcc/pgcc/whatever) and add the relevant flags so the correct MPI libraries are linked.
Remember, you need to use --showme
with a file for the wrapper to show the correct flags.
More info is here: http://www.open-mpi.org/faq/?category=mpi-apps#wrapper-showme-with-no-file
精彩评论