Компиляция Elmer FEM на macOS Mojave вызывает фатальную ошибку: файл 'string.h' не найден - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь следовать этим инструкциям для компиляции Elmer FEM на macOS Mojave Version 10.14.6. Тем не менее, при запуске make install я получаю сообщение об ошибке:

.../elmerfem/umfpack/src/umfpack/include/umf_internal.h:29:10: fatal error: 'string.h' file not found
#include <string.h>
         ^~~~~~~~~~
1 error generated.
make[2]: *** [umfpack/src/umfpack/umfpack_zl_save_symbolic.c] Error 1
make[2]: *** Deleting file `umfpack/src/umfpack/umfpack_zl_save_symbolic.c'
make[1]: *** [umfpack/src/umfpack/CMakeFiles/umfpack.dir/all] Error 2
make: *** [all] Error 2

поиск по inte rnet этот пост предлагает

  • xcode-select --install
  • sudo xcode-select --switch /Library/Developer/CommandLineTools/

, что уже было сделано ранее в моем случае и не влияет на вышеуказанную ошибку. Этот и этот пост предлагает

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target / -allowUntrusted

, что приводит к сообщению об ошибке

Установщик: установка не удалась (Установщик обнаружил ошибка, которая привела к сбою установки. Обратитесь за помощью к производителю программного обеспечения.)

Буду признателен, если вы поможете мне узнать, в чем заключается проблема и как я могу ее решить. Спасибо за вашу поддержку заранее.

PS1. Как спросили здесь , моя make версия GNU Make 3.81.

PS2. список string.h файлов на моем жестком диске здесь .

PS3. вставляется вывод CMake сюда .

1 Ответ

0 голосов
/ 08 марта 2020

ОК, думаю, я решил проблему. С здесь я запускал

cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ ..

, находясь в папке build. а затем make . работал нормально, за исключением некоторых предупреждений. Я все еще не уверен, в чем была проблема или это оптимальное / каноническое решение. Поэтому я не буду отмечать это как принятое решение, пока другие не предоставят лучшие.

PS1. Я отправил запрос на получение здесь и по формуле Элмера HomeBrew.

PS2. Для компиляции с OpenMP и MPI:

cmake -DCMAKE_C_COMPILER=/usr/local/Cellar/gcc/9.2.0_3/bin/gcc-9 -DCMAKE_CXX_COMPILER=/usr/local/Cellar/gcc/9.2.0_3/bin/g++-9 -DWITH_Mumps=FALSE -DWITH_MPI=TRUE -DWITH_OpenMP=TRUE -DWITH_MKL=FALSE -DWITH_ELMERGUI=TRUE -DWITH_ELMERPOST=FALSE -DWITH_ELMERGUITESTER=FALSE ..

У меня есть GNU G CC и OpenMPI, установленный через HomeBrew brew install gcc open-mpi.

PS3. Если вы хотите Elmer GUI также установлено:

  1. установить qt4 с brew install cartr/qt4/qt@4 с здесь
  2. установить qwt с brew install cartr/qt4/qwt-qt4
  3. затем cmake -DCMAKE_C_COMPILER=/usr/local/Cellar/gcc/9.2.0_3/bin/gcc-9 -DCMAKE_CXX_COMPILER=/usr/local/Cellar/gcc/9.2.0_3/bin/g++-9 -DWITH_Mumps=FALSE -DWITH_MPI=TRUE -DWITH_OpenMP=TRUE -DWITH_MKL=FALSE -DWITH_ELMERGUI=TRUE -DWITH_ELMERPOST=TRUE -DWITH_ELMERGUITESTER=TRUE -DQWT_INCLUDE_DIR=/usr/local/Cellar/qwt-qt4/6.1.3_1/lib/qwt.framework/Versions/6/Headers/ ..
...