Компиляция C ++ с MacOS Mojave: фатальная ошибка: mpi.h: нет такого файла или каталога

Мой вопрос точно соответствует описанной здесь проблеме: Code :: Blocks Компиляция C ++ с MacOS Mojave: фатальная ошибка: sys / cdefs.h: нет такого файла или каталога (хотя я не использую CodeBlocks).

У меня была точно такая же проблема, и я переустановил gcc и xcode, которые исправили начальную ошибку. Однако теперь у меня есть аналогичное сообщение об ошибке с fatal error: mpi.h: No such file or directory

Я попытался переустановить hdf5 и open-mpi аналогичным образом, но ни один из них не работал. Кто-нибудь может помочь?

Большое спасибо


person A. Drew    schedule 01.11.2018    source источник
comment
Ваш компилятор знает, где найти файл заголовка mpi?   -  person Philipp    schedule 01.11.2018
comment
Я не уверен, я использую gcc, установленный с помощью homebrew - как мне это проверить?   -  person A. Drew    schedule 01.11.2018
comment
stackoverflow.com/questions/32682860/ Вы можно попробовать добавить директорию mpi заголовка.   -  person Philipp    schedule 01.11.2018
comment
Я пробовал варить установку openmpi и mpich, ни одна из них не работает.   -  person A. Drew    schedule 01.11.2018
comment
И прошу прощения, я не использую CodeBlocks, уточню формулировку вопроса.   -  person A. Drew    schedule 01.11.2018
comment
@MatthieuBrucher, не могли бы вы объяснить, как это сделать в homebrew? Я думал, что это должно быть автоматически, но, похоже, здесь это не работает   -  person A. Drew    schedule 01.11.2018
comment
К сожалению, похоже, что mpicxx ломает код ... Есть ли способ обойти это с помощью g ++ - 8 (мой текущий компилятор)   -  person A. Drew    schedule 01.11.2018
comment
Все еще пытаюсь, я дам тебе знать   -  person A. Drew    schedule 01.11.2018
comment
Да работает блестяще, спасибо! Мне также пришлось удалить флаги -fopenmp и -lmpi   -  person A. Drew    schedule 01.11.2018
comment
Убран комментарий в ответе для ясности.   -  person Matthieu Brucher    schedule 01.11.2018


Ответы (1)


OpenMPI поставляется с набором оболочек для компиляторов:

mpicc
mpicxx

Они настроят все пути включения и библиотеки для включения для версий C или C ++ MPI.

Если вам нужно изменить базовый компилятор (чтобы не использовать тот по умолчанию), вы можете установить:

OMPI_CC
OMPI_CXX

таким же образом, как вы устанавливаете CC и CXX.

person Matthieu Brucher    schedule 01.11.2018