C++ CMake:如果未找到,则自动下载并生成Boost
我想在我的项目中有一个故障保护设置。我真的不想在每次安装boost和其他lib时都搞砸 因此,如果找不到所需的Boost版本,cmake将下载并编译Boost,并在项目中使用该版本,这将是非常棒的 有可能吗 我在女佣保险箱项目中找到的。但我对cmake没有那么多经验,也不知道如何使用它。您可以使用我创建的查找模块C++ CMake:如果未找到,则自动下载并生成Boost,c++,boost,cmake,C++,Boost,Cmake,我想在我的项目中有一个故障保护设置。我真的不想在每次安装boost和其他lib时都搞砸 因此,如果找不到所需的Boost版本,cmake将下载并编译Boost,并在项目中使用该版本,这将是非常棒的 有可能吗 我在女佣保险箱项目中找到的。但我对cmake没有那么多经验,也不知道如何使用它。您可以使用我创建的查找模块 下载文件 将其保存在项目中的某个位置;例如,在名为cmake的目录中 将上述目录添加到CMAKE_模块_路径。这里有一种实现方法:列表(附加CMAKE\u模块\u路径${CMAKE\u
cmake
的目录中CMAKE_模块_路径
。这里有一种实现方法:列表(附加CMAKE\u模块\u路径${CMAKE\u源\u目录}/CMAKE)
BOOST\u请求的版本
。例如,set(BOOST\u请求的版本1.61)
find\u包(Boost组件系统程序选项)
make
)动态下载和编译它。如果它安装在您的系统中,则不会下载任何内容
(可选)您可以将
BOOST\u ROOT\u DIR
更改为系统中安装BOOST的位置的根目录。如果安装在非标准位置,这将非常有用。对于不提供可靠的cmake构建的项目,这是一种可行的方法。如果项目已经基于CMake,那么就更容易了,您可以使用。这里有一个可以从系统目录中获取gmock/gtest,但可以很容易地更改为从web下载它们。请查看ExternalProject\u Add
,它应该允许您下载boost的源代码并构建它。顺便说一句,你发布的maid safe项目的cmake链接使用ExternalProject\u Add来构建boost,所以你有一个例子……我知道,这就是我发布这个例子的原因,但使用它看起来一点都不容易。难道没有一种像maven一样的解决依赖关系的方法吗?你学习maven所付出的努力是可比的,只是它不是maven。如果您想坚持使用maven better go java.Errors,则会显示以下消息:1>CMake Error:Error required内部CMake变量未设置,CMake可能无法正确构建。1> 缺少的变量是:1>CMAKE\u FIND\u LIBRARY\u前缀