LoginSignup
0
0

More than 3 years have passed since last update.

brew の boost 1.71 が cmake で使えない件の workaround

Posted at

TL; DR

Boost 側でバグが直されるまでの応急処置として、CMakeLists.txt に下記を追加

if(EXISTS /usr/local/lib/cmake/Boost-1.71.0/BoostConfig.cmake)
    set(Boost_NO_BOOST_CMAKE ON)
endif()
#find_package(Boost REQUIRED COMPONENTS ...)

事の発端

boost 1.70 までビルドできていたコードが、boost 1.71 でコケるようになった。
コンパイルは通り、リンクに失敗するので、(cmake が吐く) Makefile がおかしい?

試行錯誤

  • cmake のアップデートを待った → アップデートされても改善されなかった
  • boost 1.70 に戻す → brew upgrade で一括アップデートできないのが辛い
  • brew tap を作る → bottle が効かず、boost のビルドに途轍もなく時間がかかる

そしてこの Issue を見つけた。

Boost 1.70 から提供され始めた BoostConfig.cmake の出来が悪いらしい。
そして 1.71 からは brew 側での workaround をやめてしまった、と。

というわけで、冒頭に記載した find_package を昔の挙動にするフラグが必要。

0
0
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
0
0