Как передать -libm в MPICC? libimf.so: предупреждение: feupdateenv не реализован и всегда будет терпеть неудачу - PullRequest
2 голосов
/ 28 июля 2010

Я новичок, который пытается скомпилировать программу с помощью 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 ]

0 голосов
/ 04 марта 2011

Используйте флаг --showme, чтобы определить флаги, используемые оболочками компилятора mpicc / mpi.Затем вызовите свой собственный выбранный компилятор (icc / gcc / pgcc / любой другой) и добавьте соответствующие флаги, чтобы связать правильные библиотеки MPI.

Помните, вам нужно использовать --showme с файлом для оболочки, чтобы показать правильные флаги.

Больше информации здесь: http://www.open -mpi.org / faq /? Category = mpi-apps # wrapper-showme-with-no-file

0 голосов
/ 29 июля 2010

Попробуйте:

$ make clean
$ OMPI_CC=gcc OMPI_LDFLAGS=-lm make
...