エラー内容
最新のBoostライブラリをインストールしようとしたら、
fatal error: pyconfig.h: No such file or directory
というエラーメッセージが表示され、Python関連のターゲットのビルドが失敗してしまいました。
その解決法の備忘録。
対策
pyconfig.h
へのパスを見つけられなかったのが原因です。pyconfig.h
が存在しないか、通常の場所に置かれていません。pyconfig.h
が存在しない場合は、例えばパッケージマネージャでpython-devel
やpython3-devel
などがインストールされていないことが考えられます。pyconfig.h
が存在するにもかかわらず見つけられない場合、解決方法は
-
project-config.jam
へpyconfig.h
のパスを指定する。 -
user-config.jam
を作成してb2
の--user-config
オプションに渡す。
の2つです。
project-config.jam
へpyconfig.h
のパスを追加する
解凍したBoostライブラリのルートディレクトリにあるproject-config.jam
のpython部分を以下のように修正します。私の場合はanacondaを使っていたので以下のようになりましたが、適宜自分の場合に置き換えてpythonのバージョンやパスを加えててください。
if ! [ python.configured ]
{
using python : 3.6 : /home/sho/anaconda3 ;
}
if ! [ python.configured ]
{
using python : 3.6 : /home/sho/anaconda3 : /home/sho/anaconda3/include/python3.6m ;
}
user-config.jam
を作成してb2
の--user-config
オプションに渡す
解凍したBoostライブラリのルートディレクトリの中のbuild/example/user-config.jam
をルートディレクトリ直下にコピーして、以下の内容をファイルの最後等に追加してください。
using python : 3.6 : /home/sho/anaconda3 : /home/sho/anaconda3/include/python3.6m ;
そしてルートディレクトリでb2
を実行する際に
$ ./b2 --user-config=user-config.jam install
とuser-config.jam
を指定すればうまくいくはずです。