Расположение mpi.h

У меня есть код на моем компьютере использует Petsc который зависит от mpi, На моем компьютере это работает хорошо. Я положил его на кластер, экспортированные пути gcc, Petsc а также openmpi (хотя я использовал mpich на моем компьютере я надеюсь openmpi также будет работать) LD_LIBRARY_PATH а также PATH, Я также изменил пути в makefile. Petsc, gcc, openmpi были доступны на кластере, поэтому я ничего не настраивал. Когда я сделал makeКомпилятор дал ошибку:

fatal error: mpi.h: No such file or directory

Я знаю, что не дал полной информации, но могу рассказать больше, если это необходимо. Как я могу сделать Petsc знать где mpi.h?

0

Решение

Как правило, вы должны использовать mpicc (или же mpicxx для C ++) компилировать вместо gcc (или же g++ для C ++). Эти команды являются простыми обертками gcc а также g++ что просто добавить в соответствующий -I/path/to/mpi/includes а также -L/path/to/mpi/libs автоматически и должен быть включен в ваш openmpi установить. В отсутствие этого просто добавьте -I/path/to/mpi/includes в вашей команде, чтобы скомпилировать соответствующие файлы. Это сообщает компилятору, где искать соответствующие заголовочные файлы.

1

Другие решения

Ответить на вопрос. Чтобы редактор C / C ++ не отображал ошибки при «специальном коде», просто используйте:

#include </usr/include/mpi/mpi.h>

кажется, что это ссылка, но это отключает ошибки в редакторе Netbeans, так что я могу писать без отвлечения.
Примечание: используя Ubuntu 18.04 Desktop в качестве редактирующего компьютера — и запускайте тестирование — но я компилирую вручную, используя mpic, как отмечалось ранее.

sudo mpicc c_pi.c -o c_pi

and then...
mpiexec ./c_pi

НТН

-1

По вопросам рекламы [email protected]