Как передать -libm в MPICC? libimf.so: предупреждение: feupdateenv не реализован и всегда будет терпеть неудачу
Я новичок, который пытается скомпилировать программу через mpicc
замена icc
с gcc
, Я уже обнаружил, что мне нужно использовать следующую команду для компиляции
$ 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
2 ответа
Использовать --showme
флаг для определения флагов, используемых оболочками компилятора mpicc / mpi. Затем вызовите свой собственный выбранный компилятор (icc/gcc/pgcc/ любой другой) и добавьте соответствующие флаги, чтобы связать правильные библиотеки MPI.
Помните, вам нужно использовать --showme
с файлом для оболочки, чтобы показать правильные флаги.
Более подробная информация здесь: http://www.open-mpi.org/faq/?category=mpi-apps