CMake:如果找不到,则自动进行Boost下载和构建
CMake: Automatic Boost download and build if not found
我希望在我的项目中有一个故障保护设置。我真的不想每次我们设置东西时都麻烦地安装boost和其他libs。
因此,如果找不到所需的Boost版本,cmake就会下载并编译Boost,并将该版本用于项目,这将是一件非常棒的事情。
有简单的可能性吗?
我在女仆保险箱项目中发现了这个。但我对cmake没有那么多经验,也不知道如何使用它。
您可以使用我创建的这个查找模块。
- 下载FindBoost.cmake文件
- 将其保存在项目中的某个位置;例如在名为
cmake
的目录中 - 将上述目录添加到
CMAKE_MODULE_PATH
。以下是实现这一点的一种方法:list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
- 设置
BOOST_REQUESTED_VERSION
。例如,set(BOOST_REQUESTED_VERSION 1.61)
- 像使用任何其他查找模块一样使用该模块。例如:
find_package(Boost COMPONENTS system program_options)
如果系统中未安装Boost,则会在构建时(即运行make
时)动态下载并编译。如果它安装在您的系统中,则不会下载任何内容。
(可选)您可以将BOOST_ROOT_DIR
更改为系统中安装boost的位置的根目录。如果安装在非标准位置,这将非常有用。
相关文章:
- 在 Julia 中使用 boost 库和 Windows 上的 Cxx.jl
- 使用Boost async_read和POSIX::stream_descriptor从键盘读取
- boost信号和插槽在不同的线程中不工作(使用boost::asio::io_service)
- Boost.Python 和导入 dll,"The specified module could not be found"
- 我可以使用 Boost.Asio 和 Boost.Beast 库发出 HTTPS 请求或 HTTP/2 请求吗?
- Boost.Python 和C++导入到 Python 3 时编译库错误
- 使用boost::filesystem和boost::lexical_cast从文件名中提取数字
- 如何通过boost::asio和shared_ptr创建串行端口
- 使用 Boost ASIO 和 SSL 时出现"Wrong Version Number"错误 (C++)
- boost::regex 和std::regex之间的不一致?
- 配置 Visual Studio 以与 Boost.Python 和 Python 3 配合使用
- C 使用BOOST.ASIO和BEAST库中的身体发送数据
- “boost::any”和“std::any”之间的区别
- 在 Windows 上使用 Boost python3 和 numpy3 库时,VS2015 中LNK2019未解析的外
- 与 boost.python 和 python3 链接时出现问题
- 内存泄漏在async_handshake使用boost beast和openssl
- 静态链接再次链接boost.test和cmake在Windows上的mingw
- C 设计:多个TCP客户端,Boost ASIO和观察者
- 微分方程的解在 boost::odeint 和 scipy.integrate 中完全不同
- CMake:如果找不到,则自动进行Boost下载和构建