我有一个CMake的项目,我有时想编译反对静态Boost库,但我想也可以很容易地只使用动态库从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不打开它。 我甚至想取消设置(Boost_LIBRARIES)显式地清除它。 有没有办法做我想要做什么?
使用x86_64的Linux和G ++编译。 提前致谢!