静的ブースト ライブラリに対してコンパイルしたい CMake プロジェクトがありますが、cmake GUI から動的ライブラリを簡単に使用できるようにしたいと考えています。トップレベルの CMakeLists.txt には、次のものがあります。
option(USE_STATIC_BOOST "Build with static BOOST libraries instead of dynamic" NO)
次に、別のファイルで、次のロジックを設定します。
if(USE_STATIC_BOOST)
unset(Boost_LIBRARIES)
message(WARNING "Linking against boost static libraries")
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
find_package(Boost REQUIRED COMPONENTS thread program_options system)
else(USE_STATIC_BOOST)
unset(Boost_LIBRARIES)
message(WARNING "Linking against boost dynamic libraries")
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON)
find_package(Boost REQUIRED COMPONENTS thread program_options system)
endif(USE_STATIC_BOOST)
ゼロから始めて使用すると、これはうまくいくようです:
cmake ../.. -DUSE_STATIC_BOOST=YES
しかし、私が使用するとき
ccmake ../..
何をしても静的ライブラリを使用することはできません。CMake は起動時に動的オプションをキャッシュにロードするように見え、USE_STATIC_BOOST を変更しても切り替えられません。明示的にクリアするために unset(Boost_LIBRARIES) を試みました。私がやろうとしていることをする方法はありますか?
x86_64 Linux と g++ を使用してコンパイルします。前もって感謝します!