5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

X-TECHエンジニア室Advent Calendar 2022

Day 18

mac に最新の pyopenjtalk をインストールできない。

Last updated at Posted at 2022-12-12

動機

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

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?