当前位置: 首页 > article >正文

Ubuntu22.04中使用CMake配置运行boost库示例程序

Ubuntu22.04中使用CMake配置运行boost库示例程序

boost是一个比较强大的C++准标准库,里面有很多值得学习的东西,比较asio网络库可以用来编写C++ TCP客户端或者TCP服务端接收程序。本文主要讲解如何在Ubuntu22.04中使用Cmake配置boost库,以及运行boost示例程序。

Ubuntu22.04上安装boost库

参考在Ubuntu上安装Boost的五种方法(全网最全,建议收藏)中使用apt-get安装libboost-all-dev包的方式安装boost库,目前最新稳定版本是1.74.0

sudo apt-get update
sudo apt-get install libboost-all-dev

对应的boost安装目录为:/usrinclude头文件所在目录为:/usr/includeso库文件安装目录为:/usr/lib/x86_64-linux-gnu

编写boost示例程序

boost示例程序BoostExample_array_003.cpp如下:

#include <iostream>
#include <boost/array.hpp>

using namespace std;

int main()
{
    boost::array<int, 4> arr = {{1, 2, 3, 4}};
    std::cout << "hi " << arr[0] << std::endl;

    return 0;
}

编写CMakeLists.txt文件

在上述BoostExample_array_003.cpp示例源代码同级目录下新建一个CMakeLists.txt文件
BoostExamples

首选我们需要安装cmake,至于如何在ubuntu22.04安装cmake,直接使用sudo apt-get install cmake即可,当然也可以下载cmake源代码安装。

project(BoostExamples)
cmake_minimum_required(VERSION 3.7)
# 设置C++标准
set(CMAKE_CXX_STANDARD 14)

# 首选的Boost安装路径
set(BOOST_ROOT /usr)
# 首选的头文件搜索路径 e.g. <prefix>/include
set(BOOST_INCLUDEDIR /usr/include)
# 首选的库文件搜索路径 e.g. <prefix>/lib
set(BOOST_LIBRARYDIR /usr/lib/x86_64-linux-gnu)
# 默认是OFF. 如果开启了,则不会搜索用户指定路径之外的路径
set(BOOST_NO_SYSTEM_PATHS ON)

find_package(Boost COMPONENTS regex system REQUIRED)

if (Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIRS})

    MESSAGE( STATUS "Boost_INCLUDE_DIRS = ${Boost_INCLUDE_DIRS}.")
    MESSAGE( STATUS "$Boost_LIBRARIES = ${Boost_LIBRARIES}.")
    MESSAGE( STATUS "Boost_LIB_VERSION = ${Boost_LIB_VERSION}.")
  
    add_executable(BoostExample_array_003 BoostExample_array_003.cpp)
    target_link_libraries(BoostExample_array_003 ${Boost_LIBRARIES})
endif()

关于在linux下使用cmake配置boost库,可以参考FindBoost和CMake中引用Boost库

运行程序

cd到BoostExample_array_003.cpp源代码和CMakeLists.txt同级目录,执行’mkdir build创建一个build`目录用于cmake编译源代码,这样的话就不会污染源代码目录了,

cd ~/workspace/CppProjects/BoostExamples
mkdir build
cmake ..
make

cmake运行boost示例程序
这样就生成了BoostExample_array_003可执行程序,
在命令行终端terminal中执行./BoostExample_array_003,运行结果如下:
运行结果

参考资料

  • https://www.boost.org/
  • CMake FindBoost
  • 在Ubuntu上安装Boost的五种方法(全网最全,建议收藏)
  • CMake中引用Boost库

http://www.kler.cn/a/393638.html

相关文章:

  • 大语言模型:解锁自然语言处理的无限可能
  • 【JVM】关于JVM的内部原理你到底了解多少(八股文面经知识点)
  • 使用elementUI实现表格行拖拽改变顺序,无需引入外部库
  • mac终端使用pytest执行iOS UI自动化测试方法
  • Kafka参数了解
  • MySQL:CRUD
  • 《目标检测》——基础理论知识(目标检测的数据集、评价指标:IOU、mAP、非极大抑制NMS)
  • uni-app收藏按钮组件实现⑬
  • WebAPI性能监控-MiniProfiler与Swagger集成
  • 鸿蒙next版开发:相机开发-预览(ArkTS)
  • 什么是虚拟内存,为什么要使用虚拟内存,虚拟内存可能比物理内存大吗?
  • 递归搜索与回溯算法
  • Spring设计模式
  • Halcon3D gen_image_to_world_plane_map的理解和实用
  • github SSH连接(windows)
  • 关于我重生到21世纪学C语言这件事——指针详解(1)
  • 基于MATLAB的图片中文字的提取及识别
  • 使用Git进行项目管理
  • ApiSmart x Qwen2.5-Coder 开源旗舰编程模型媲美 GPT-4o, ApiSmart 实测!
  • C语言打印时间精确到毫秒
  • Docker运行一个fio工具镜像
  • 《TCP/IP网络编程》学习笔记 | Chapter 8:域名及网络地址
  • vue中setup语法糖的优点
  • 今日 AI 简报 | 开源 RAG 文本分块库、AI代理自动化软件开发框架、多模态统一生成框架、在线图像背景移除等
  • cursor+QT5.12.12
  • 无需云端!国产开源大语言模型llama.cpp本地实战