CMakeLists.txt 添加Boost库

2024-06-13 01:38
文章标签 txt boost cmakelists

本文主要是介绍CMakeLists.txt 添加Boost库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Demo描述:使用boost::mutex 锁机制,打印两个线程的输出。

源码如下:

#include <iostream>#include <boost/thread/thread.hpp> 
#include <boost/thread/mutex.hpp> boost::mutex mutex;void print_block(int n, char c)
{// critical section (exclusive access to std::cout signaled by locking mtx):mutex.lock();for (int i = 0; i < n; ++i){std::cout << c;}std::cout << '\n';mutex.unlock();
}int main(int argc, char* argv[])
{boost::thread thread1(&print_block, 300, '*');boost::thread thread2(&print_block, 300, '$');thread1.join();thread2.join();return 0;
}

CmakeLists.txt内容如下:

# cmake needs this line
cmake_minimum_required(VERSION 2.8)# Define project name
project(mutex_project)SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-std=c++11")## System dependencies are found with CMake's conventions
find_package(Boost REQUIRED COMPONENTSthread
)if(NOT Boost_FOUND)message("NOT found Boost")
endif()include_directories(${Boost_INCLUDE_DIRS})
# Declare the executable target built from your sources
add_executable(${PROJECT_NAME} src/main.cpp)
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES})

执行输出:

------------------------------------------------------------------------更新-------------------------------------------------------------------------------------------

如果去除lock

void print_block(int n, char c)
{// critical section (exclusive access to std::cout signaled by locking mtx)://mutex.lock();for (int i = 0; i < n; ++i){std::cout << c;}std::cout << '\n';//mutex.unlock();
}

结果执行如下:

 

这篇关于CMakeLists.txt 添加Boost库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1055934

相关文章

Python脚本:TXT文档行数统计

count = 0 #计数变量file_dirs = input('请输入您要统计的文件根路径:')filename = open(file_dirs,'r') #以只读方式打开文件file_contents = filename.read() #读取文档内容到file_contentsfor file_content in file_contents:

mysql中导入txt文件数据的操作指令

1 表tt的格式:    CREATE TABLE `tt` (   `ind` int NOT NULL auto_increment,   `name` char(100) default NULL,   PRIMARY KEY  (`ind`)  )   2 文件d.txt的内容示例:  1,a  2,b  3,c

Boost程序库入门学习

优秀的程序员要能够知其所以然,而不是重复的造轮子,近期目标是学习优秀的第三方库,同时尝试使用C++11/14新特性,然后吸取精华用到项目中去,加油~ 参考书籍: 罗剑锋写的《Boost程序库完全开发指南》和《Boost程序库探秘》,前者是一个大体的介绍,后者是针对一些诸如模板元编程等高级特性做了深入的探讨。 一、Boost库概述 Boost是一个功能强大、构造精巧、跨平台、开源并且完全

Boost库一些概念

Boost库一些概念 回调函数和异步操作的设计优势 在 Boost.Asio 中,异步操作和回调函数的设计有以下几个主要优势:1. 非阻塞 I/O非阻塞: 异步操作不会阻塞线程,允许程序在等待 I/O 操作完成的同时执行其他任务。这提高了程序的响应性和并发处理能力。事件驱动: 通过事件循环和回调函数,程序可以以事件驱动的方式处理 I/O 操作,避免了传统阻塞 I/O 模型中的线程阻塞问题。2.

【python txt合并】python合并同一个文件夹下所有txt文件

一、需求分析 合并一个文件夹下所有txt文件 二、合并效果 三、python实现代码 # -*- coding:utf-8*-import sysreload(sys)sys.setdefaultencoding('utf-8')import osimport os.pathimport timetime1=time.time()##############

【自然语言处理 词库建设】怎样将搜狗的细胞词库scel格式转化成txt格式

搜狗词库:https://pinyin.sogou.com/dict/ 1、先下载搜狗词库到本地,文件格式为.scel后缀 2、利用python3 自动转换成txt python3版本: # -*- coding:utf-8 -*-import structimport os# 由于原代码不适用python3且有大量bug# 以及有函数没有必要使用且一些代码书写不太规范或冗余#在原有

python中使用FormatDataLibsvm转为txt文件后报错illegal multibyte sequence

‘gbk’ codec can’t decode byte 0xff in position 0: illegal multibyte sequence 这个报错是因为编码不对,正确的编码是ANSI编码,txt文件打开后另存为可以看到当前的文本文档编码 但是excel不能直接保存ANSI编码的txt文件 所以不能直接保存为ANSI编码 有两种解决办法 1.新建一个txt文件(新建的txt文件

boost.graph之属性

相关宏 BOOST_INSTALL_PROPERTY #define BOOST_INSTALL_PROPERTY(KIND, NAME) \template <> struct property_kind<KIND##_##NAME##_t> { \typedef KIND##_property_tag type; \} 最终形式为 template <> struct proper

向MySQL数据库表内导入txt和csv文件数据

本文总结了在CentOS7上使用 LOAD DATA <LOCAL> INFILE 语句向MySQL8.0数据库导入txt文件和csv文件数据的方法和遇到的错误。由于两者方法一样,就先介绍导入txt文件的操作和错误,csv的直接在最后附上命令和简要说明。 原始数据 nameownerspeciessexbirthdeathFluffyHaroldcatf1993-02-04 ClawsGwen

boost和buck-boost拓扑原理

如果是交流电可以用变压器升压: boost升压直接的问题就是电流随着电压的升高会降低,这个时候可以使用PD技术升高功率 boost拓扑: MOS关断的时候电感右侧的电压是VO + VD,电感左侧的电压是VIN,显然电感右侧电压大于电池电压VIN: BUCK---BOOST: 电磁兼容EMC包括电磁干扰EMI和电磁抗干扰EMS:有空对这些进行专门的学习: