これを動かすのに困ったので、いつかの私か誰かのための備忘録
💡 Ckake-makeのコンパイルをできるようにする!インストール手順
- Brewを用いて必要なものをインストールする
brew install cmake
brew install make
brew install gcc
- それぞれが入っているのか、確認する. 何か反応があり、格納されているパスが出力されれば、入力を確認できる。
which gcc
which g++
- 出力は以下のようなものが出るはず
/usr/bin/gcc
- バージョンを確認して、シンボリックリンクを作成する
- バージョンの確認
- ls -l /usr/local/bin/g++-15
- ls -l /usr/local/bin/gcc-15
- シンボリックリンクの作成。管理者権限で行う。この時、バージョンを自分で確認した上のものにすることに注意(バージョンを指定せずに書く方法もあるらしいがここでは略)
sudo ln -sf /usr/local/bin/g++-15 /usr/local/bin/g++
sudo ln -sf /usr/local/bin/gcc-15 /usr/local/bin/gcc
- バージョンの確認
- 環境変数を設定する. 2024年ぐらいからのMacではzshが使用されているみたいなので、それに従って記述する(ここで、私はClang中心にコンパイルした
- 設定ファイルを開く
- nano ~/.zshrc
- CXX、CCのコンパラセットの環境変数を記述(Clangで実行したくて、Gccがあるとエラーになってしまったのでこのような構成になった。多分正しいけど動いたから頭が良くなったら修正する)
export PATH="/usr/local/bin:$PATH"
export CXX=/usr/local/bin/clang
export CC=/usr/local/bin/gcc
export CC=/usr/bin/gcc
export CC=/usr/bin/clang
- 環境変数の変更を反映させる
source /.zshrc
- 設定ファイルを開く
- 目的のファイルで、cmake→makeをすれば入る、はず。
もがき苦しんだエラーたち🥺
エラー1
CMake Error at /opt/homebrew/Cellar/cmake/3.29.5/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:48 (message):
Could not find compiler set in environment variable CXX:
/usr/local/bin/g++.
Call Stack (most recent call first):
CMakeLists.txt:3 (project)
- ここらへんは全て環境変数の設定だった。
- パスが通っていない時
- パスのタイポなど確認
- パスがSourceによって更新されているのか確認
- パスを通したのに無理な時
- 4ーbで入れた設定のうち、何かがおかしいのだと思う。
- エラーが出ていそうな変数を消したり、gcc を増やしたりするとうまくいったがあんまり理解できてなくてぴえん
- 例えば、記憶は曖昧だが、以下の変数を消したらうまくいった
export CXX=/usr/local/bin/gcc
- 例えば、記憶は曖昧だが、以下の変数を消したらうまくいった
- ここの環境変数が全て悪さをしている、と思う。
- ゆうて参考になるWebサイトがないので絶望
- パスが通っていない時
エラー2
ダウンロードしたコードなのに、コードエラー
ポインタが認識できない、変数が定義されていない
- cmakeができているのなら、実行環境が正しくない
- 私は、Ubuntのものを永遠にMacで実行していたので、時間を溶かした🫠🫠
- 環境構築もできないなんて、、、となるが、プライドを捨てて相談するべきという本日の学び
エラー3
Clangでコンパイルにすると、以下のようなエラーが出ることもある。
この時は、cのバージョンを指定してあげることでエラーを解消することができる