issp-center-dev / mVMC

A numerical solver package for a wide range of quantum lattice models based on many-variable Variational Monte Carlo method

Home Page:http://www.pasums.issp.u-tokyo.ac.jp/mvmc/en/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MacBookでのmake、cmakeについて

hmiyahara512 opened this issue · comments

担当者様

MacBook(macOS Montery Version 12.4)でのmake、cmakeでエラーが出てしまうのですが、MacBookはサポート外でしょうか?
また、昨日不適切なissueを出してしまい、申し訳ありません。

宮原

macOS に入っている gcc は GCC ではなく Apple clang で、OpenMP のサポートが(デフォルトでは)ないので omp.h が見つからなくて落ちているのかと推測します。
(他の理由の場合には、実際に行ったことと現れたエラーメッセージを書いてください)
いくつか方法はありますが、

  1. Apple clang ではないコンパイラを入れて cmake コマンドでコンパイラを指定する
    • たとえば Homebrew で brew install gcc をした後に
    • cmake -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_Fortran_COMPILER=gfortran-11
  2. (たとえばHomebrew で) libomp をいれて Apple clang からOpenMP を使えるようにする
    • コンパイルオプションの明示的な設定などが必要になりますが、 cmake-DCONFIG=apple を渡せば大丈夫です

のどちらかを試してみてください(私個人は1 を主にやっています)。

(現在のマニュアルがこのあたりあまりしっかりしていないようなので直しておきます)

ご対応、ありがとうございます。

上記1を実行し、以下のエラーを得ました。
ーーーーーーーーーーーーーーーーーーーーーーーー
CMake Error at /usr/local/Cellar/cmake/3.22.3/share/cmake/Modules/CMakeTestCCompiler.cmake:69 (message):
The C compiler

"/usr/local/bin/gcc-11"

is not able to compile a simple test program.

It fails with the following output:

Change Dir: /Users/hideyuki/Codes/c_001/mVMC_001/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make -f Makefile cmTC_893fe/fast && /Library/Developer/CommandLineTools/usr/bin/make  -f CMakeFiles/cmTC_893fe.dir/build.make CMakeFiles/cmTC_893fe.dir/build
Building C object CMakeFiles/cmTC_893fe.dir/testCCompiler.c.o
/usr/local/bin/gcc-11    -o CMakeFiles/cmTC_893fe.dir/testCCompiler.c.o -c /Users/hideyuki/Codes/c_001/mVMC_001/CMakeFiles/CMakeTmp/testCCompiler.c
clang: error: invalid version number in '-mmacosx-version-min=12.4'
make[1]: *** [CMakeFiles/cmTC_893fe.dir/testCCompiler.c.o] Error 1
make: *** [cmTC_893fe/fast] Error 2

CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:20 (enable_language)
ーーーーーーーーーーーーーーーーーーーーーーーー

エラーの内容を理解していないのですが、コメントいただけると幸いです。
よろしくお願いします。

そもそも /usr/bin/gcc/usr/local/bin/gcc-11 でなにか適当なプログラム (例えば void main(){} など)はコンパイルできますか?

そのエラーを吐く環境が手元にないのでちゃんとはわかりませんが、とりあえずありそうなこととして、 macOS のcommand line tool が古そうな気がします(最近macOS のバージョンを上げましたか?)。
システム環境設定のソフトウェアアップデートに、コマンドラインツールの更新が来ていないでしょうか?
(あるいは以下のコマンドで再インストールできるといろいろなところで書いてありますが、自分は試したことはないと添えておきます)

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install

再度コメント、ありがとうございました。

gcc-11がうまく設定されておらず、ご指摘の通りxcode-selectをインストールし直したところ、cmakeがうまくできました。
ちなみにTeNeSもcmakeできました。
お手数をおかけし、申し訳ありません。ありがとうございました。