動機
macであればpyopenjtalk==0.1.3
をインストールすることで大体は使用することができるようになる。
しかし、最新バージョンをインストールできないのはなんか悔しい、あと、勉強のためになんとかインストールできないかやってみた。
方法
半年前くらいに解決したのであまり詳細は覚えていないが以下の手順を実行した。
参考になったページ
上記ページの
Deleting MacOSX10.15.sdk works.部分から行った。
ページ内検索でDeleting MacOSX10.15.sdk works.を探して欲しい。
以下の場所に移動
$ pwd
/Library/Developer/CommandLineTools/SDKs
MacOSX10.15.sdk このディレクトリをpyopnjtalkをビルドする時に参照しているからダメみたい、、、
なので、一時的にMacOSX10.15.sdkを退避させるディレクトリを作る 「test」
そこに $ sudo mv MacOSX10.15.sdk test
で移動
$ sudo mkdir test
$ sudo mv MacOSX10.15.sdk test
$ ls -la
total 0
drwxr-xr-x 7 root wheel 224 2 25 11:44 .
drwxr-xr-x 5 root wheel 160 7 19 2021 ..
lrwxr-xr-x 1 root wheel 14 7 19 2021 MacOSX.sdk -> MacOSX11.3.sdk
drwxr-xr-x 7 root wheel 224 11 30 2020 MacOSX11.1.sdk
drwxr-xr-x 8 root wheel 256 2 25 11:38 MacOSX11.3.sdk
lrwxr-xr-x 1 root wheel 14 7 19 2021 MacOSX11.sdk -> MacOSX11.3.sdk
drwxr-xr-x 3 root wheel 96 2 25 11:44 test
$ ls test
MacOSX10.15.sdk
以下のコマンドでDCMAKE_OSX_SYSROOTを設定
MacOSX11.3.sdk
じゃなくても自分のディレクトリに存在している最新のものであればいいと思う。
$ DCMAKE_OSX_SYSROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk"
$ echo $DCMAKE_OSX_SYSROOT
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk
MacOSX10.15.sdk がビルドする時に参照できなくなったので
$ pip install pyopenjtalk
これでいけるはず!!
考察
少し前なのであんまり詳しくは覚えていないです、申し訳ありません。。。
多分ですが、MacではC/C++(gcc)を使用するライブラリをインストールするときはXcodeの関係のComandLineToolが関係しており、今回はそこを参照しているものを変更することで問題が解決できました。
Mac OSをアップデートしたので、
もしかしたらOSのバージョンをアップデートしたりすると参照先が変わらずにインストールできない現象になるのかも。
勉強になったこと
C/C++関係のライブラリのインストールでつまづいたりすると結構厄介な解決方法になる。
XcodeやC/C++(cmake, gccなど)周りの情報を調べると解決法にたどり着くかも。
諦めない心が大切!
結構たくさんの解決法を調べて試したが、なかなかできなかった。
参考文献
Catalina C++: Using headers yield error: no member named 'signbit' in the global namespace