【亲测可行】Mac上clion boost库的安装与使用

很多博客上关于boost库的安装与使用都有问题,所以自己写一篇文章来纠正一些错误

这里采用homebrew安装

jsx 复制代码
brew install boost

安装好以后boost目录在 /opt/homebrew/Cellar/boost/xxx版本 下,然后可以看到lib(库文件)和include(头文件)

然后我们写一个程序来测试一下

jsx 复制代码
#include <iostream>
#include <boost/version.hpp>

using namespace std;

int main(int argc, char const *argv[])
{
	cout << BOOST_VERSION << endl;
	return 0;
}

g++使用第三方库编译是如下命令

jsx 复制代码
g++ a.cpp  -I 头文件路径 -L 库文件路径 -l 动态链接库

对应到我们这里应该是,这里1.84.0_1是homebrew安装的版本,读者可以自行查看

jsx 复制代码
 g++ -o boost boost.cpp -std=c++11 -I /opt/homebrew/Cellar/boost/1.84.0_1/include -L /opt/homebrew/Cellar/boost/1.84.0_1/lib -l boost_system -l boost_thread

必须要加,-l boost_system -l boost_thread,否则会报错(不过不知道为什么,我这里不要写boost_thread,写了反而会报错)
在clion中,我们需要对CMakeLists.txt添加如下这行

jsx 复制代码
cmake_minimum_required(VERSION 3.27)
project(main)

set(CMAKE_CXX_STANDARD 17)
//添加的为这两行
find_package(Boost 1.84.0 REQUIRED COMPONENTS filesystem)
include_directories(${Boost_INCLUDE_DIRS})
//
add_executable(main main.cpp)

cmake对boost有很好的支持,上面的指令翻译如下:1,find_package(Boost 1.69.0 查找系统的boost, 目标版本是1.74.0;2,REQUIRED COMPONENTS filesystem) COMPONENTS用来限定boost的filesystem模块,REQUIRED表明必须找到指定的模块,否则会出错

上面的find_package命令如果找到boost::filesystem,会在cmake中设置一些变量,比如Boost_LIBRARIES、Boost_INCLUDE_DIRS,需要在编译目标上使用这些变量。

添加完以后,再从clion中运行就没有任何问题了

相关推荐
草莓熊Lotso1 天前
C++ 抽象类与多态原理深度解析:从纯虚函数到虚表机制(附高频面试题)
java·运维·服务器·开发语言·c++·人工智能·笔记
Rock_yzh1 天前
LeetCode算法刷题——49. 字母异位词分组
数据结构·c++·学习·算法·leetcode·职场和发展·哈希算法
小欣加油1 天前
leetcode 2654 使数组所有元素变成1的最少操作次数
数据结构·c++·算法·leetcode·职场和发展
_F_y1 天前
C++11拓展语法
c++
_OP_CHEN1 天前
从零开始的Qt开发指南:(三)信号与槽的概念与使用
开发语言·c++·qt·前端开发·qt creator·信号与槽·gui开发
乄夜1 天前
嵌入式面试高频!!!C语言(十四) STL(嵌入式八股文)
c语言·c++·stm32·单片机·mcu·面试·51单片机
草莓熊Lotso1 天前
《算法闯关指南:优选算法--位运算》--38.消失的两个数字
服务器·c++·算法·1024程序员节
Molesidy1 天前
【VSCode】【Clangd】Win下的基于LLVM/Clangd+Clangd插件+MINGW+CMake的VSCode配置C/C++开发环境的详细教程
c++·ide·vscode·clangd·llvm
Mr_WangAndy1 天前
C++_chapter13_C++并发与多线程_多线程概念,死锁,unique_lock(),lock_guard()使用
c++·lock·死锁·并发与多线程·unlock·lock_guard·unique_lock
小欣加油1 天前
leetcode 946 验证栈序列
c++·算法·leetcode·职场和发展