CMakeを使用してBoostを見つけます。ブーストは見つかりましたが、CMakeはエラーを出します
インポートされたターゲットはBoostバージョンでは使用できません
以下の完全なエラー(macOSから)を参照してください。私は何を間違えていますか?
CMake Warning at /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106300
Call Stack (most recent call first):
/Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:1395 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:6 (find_package)
Boost version: 1.63.0
Found the following Boost libraries:
thread
CMake Warning at /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
Imported targets not available for Boost version 106300
Call Stack (most recent call first):
/Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:1395 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:7 (find_package)
CMakeバージョンが古すぎます。 CMakeを更新すると動作します。
CMakeは、異なるBoostライブラリ間の依存関係を検出できません。 FindBoost
に明示的に実装されています。
Boostリリースごとに、この情報はCMakeメンテナーによって追加され、次のCMakeリリースの一部になります。したがって、CMakeバージョンが、見つけようとしているBoostバージョンの後にリリースされたことを確認する必要があります。
Boost 1.63にはCMake 3.7以降が必要です。
Boost 1.64にはCMake 3.8以降が必要です。
Boost 1.65および1.65.1では、CMake 3.9.3以降が必要です。
Boost 1.66にはCMake 3.11以降が必要です。
Boost 1.67にはCMake 3.12以降が必要です。
ブースト1.68、1.69にはCMake 3.13以降が必要です。
Boost 1.70にはCMake 3.14以降が必要です。
バージョン1.70以降、BoostはFindBoostと必要な変更を廃止するBoostConfig.cmake
を提供します。を使用して
find_package(Boost CONFIG)
findBoostファイルを除外し、構成ファイルのみを検索します。 CMakeからFindBoostを削除することはありますが 、しかし1.70より前のバージョンのサポートが壊れるので、CMakeはこのステップを実行するのを待っています。それでも、これは将来のCMakeリリースでこのバージョンの混乱を取り除く方法です。
ルート/ Sudoアクセスがない作業中のシステムでCMakeをアップグレードするよりもはるかに簡単なので、次の回避策を投稿したかっただけです。 CMakeを呼び出すときに、BOOST_INCLUDEDIR
とBOOST_LIBRARYDIR
を直接設定します。
cmake -DBOOST_INCLUDEDIR=... -DBOOST_LIBRARYDIR=... ...
BoostがCMakeに同梱されているモジュールにハードコーディングされたリストと使用しているBoostバージョンの依存関係を変更した場合、これは機能しない可能性があります。ソースからcmakeをインストールするのに30分かかるのに対して、試行するのに30秒かかります。