issp-center-dev / mVMC

A numerical solver package for a wide range of quantum lattice models based on many-variable Variational Monte Carlo method
http://www.pasums.issp.u-tokyo.ac.jp/mvmc/en/
GNU General Public License v3.0
59 stars 19 forks source link

MacBookでのmake、cmakeについて #36

Closed hmiyahara512 closed 2 years ago

hmiyahara512 commented 2 years ago

担当者様

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

宮原

yomichi commented 2 years ago

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 を主にやっています)。

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

hmiyahara512 commented 2 years ago

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

上記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) ーーーーーーーーーーーーーーーーーーーーーーーー

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

yomichi commented 2 years ago

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

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

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
hmiyahara512 commented 2 years ago

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

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