boost库

曲奇的ndnSIM API教程翻译

被刻印的时光 ゝ 提交于 2020-02-24 21:13:59
目录 ndnSIM 开发文档 1.入门 1-1介绍 更多文档 支持 日志 1.2下载和编译 可移植性 先决条件 核心依赖项 NS-3 Python绑定的依赖项 下载ndnSIM源码 编译运行ndnSIM 使用ndnSIM进行仿真 1.3常见问题 安装Boost库到/usr/local 将boost库安装到非特权位置 常见的陷阱 可视化问题 macOS上gtk python模块的问题 代码问题 一般性问题 1.4仿真示例 1.5联系 ndnSIM 开发文档 该网站包括ndnSIM文档,旨在帮助社区使用NDN实验模拟器。它并不打算介绍NDN体系结构和通信模型的原理或设计。我们邀请您加入我们的邮件列表,以查看和参与有关ndnSIM实现和一般模拟(邮件列表存档)的讨论。 1.入门 1-1介绍 基于NS-3的命名数据网络(NDN)模拟器的新版本经历了大量的重构和重写。新版本的主要新功能:数据包格式更改为NDN数据包格式NDNSIM使用NDN CXX库(NDN C++库)的基本NDN原语的实现所有的NDN转发和管理都是使用命名数据网络转发守护进程(NFD)的源代码直接实现的可以模拟一些针对ndn cxx库编写的实际应用程序 注意 请注意,ndnSIM>=2.0已经经历了为ndnSIM 1.0编写的主要重构和模拟场景,很可能需要更改才能在ndnSIM>=2.0平台上运行。 这种与ndn

ubuntu下boost库的安装

允我心安 提交于 2020-02-19 23:17:42
ubuntu16.04下boost_1_70_0库的安装 boost‘准标准库’安装过程。 系统是ubuntu虚拟机,安装的是boost_1_60_0。 (1)首先去下载最新的boost代码包,网址www.boost.org。https://dl.bintray.com/boostorg/release/1.70.0/source/ (2)进入到自己的目录,解压: bzip2 -d boost_1_60_0.tar.bz2 tar xvf boost_1_60_0.tar (3)之后进入boost目录 cd boost_1_60_0/ ./bootstrap.sh之后会产生bjam和b2两个工具 sudo ./b2 install(确定已经安装了g++与gcc,此过程会花费一些时间) 这个时候你的/usr/local/include下会产生boost的头文件, /usr/local/lib下面会产生boost库 (4)切换到cd /etc/profile.d目录下,使用超级用户创建文件boost.sh,里面添加如下内容 #!/bin/sh BOOST_ROOT=/home/Lyndon/boost_1_60_0(boost的解压路径) BOOST_INCLUDE=/usr/local/include/boost BOOST_LIB=/usr/local/lib export

boost库使用—线程类

ε祈祈猫儿з 提交于 2020-02-16 19:01:58
boost库使用—线程类 boost 库中提供了两种创建线程的方式,一种是单个线程创建,另外一种是线程组的创建,进行线程管理 ;同时,在线程库中还提供了锁的方式; thread 线程 thread 就是没有组管理,与我们在linux下使用pthread_create()函数是一样的,只是在C++11中,引入了boost中的thread方法; 包含头文件: #include <boost/thread.hpp> using namespace boost; 常用方法: thread th(…) 创建线程 th.interrupt() 中断线程 th.get_id() 获取线程ID th.join() 等待线程结束 案例: #include <iostream> #include <boost/thread.hpp> #include <boost/function.hpp> #include <boost/bind.hpp> using namespace std; boost::mutex io_mutex; void Print(int x, string str) try { for (int i = 0; i < x; i++) { boost::mutex::scoped_lock lock(io_mutex); cout << "str:"<<str << endl; }

boost的下载使用教程 windows下

一世执手 提交于 2020-02-04 09:06:55
boost官网: https://www.boost.org/ 下载windows下安装包,傻瓜式安装好,打开vs配置属性 添加boost库根目录 这里设置lib库目录 在就是注意32为和64位的库,32位的boost库只能编译32位的程序,64位的boost库只能编译64位的程序 来源: CSDN 作者: 一只小黑 链接: https://blog.csdn.net/qq_28437139/article/details/104154046

CMakeLists.txt 添加Boost库

倖福魔咒の 提交于 2019-12-31 23:20:41
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

boost库中thread多线程中的thread_specific_ptr

最后都变了- 提交于 2019-12-23 05:31:35
大多数函数都不是可重入的。这也就是说在某一个线程已经调用了一个函数时,如果你再调用同一个函数,那么这样是不安全的。举例来说,std::strtok就是不可重入的,因为它使用静态变量来保存要被分割成符号的字符串。 一个不可重入的函数通过连续的调用来保存静态变量或者是返回一个指向静态数据的指针,有两种方法可以让不可重用的函数变成可重用的函数。 方法1:就是改变接口,用指针或引用代替原先使用静态数据的地方。比方说,POSIX定义了strok_r,std::strtok中的一个可重入的变量,它用一个额外的char**参数来代替静态数据。这种方法很简单,而且提供了可能的最佳效果。但是这样必须改变公共接口,也就意味着必须改代码。 方法2:不用改变公有接口,而是用本地存储线程(Thread-Locally Storage)来代替静态数据(有时也被成为特殊线程存储,thread-specific storage)。 Boost线程库提供了智能指针boost::thread_specific_ptr来访问本地存储线程。thread_specific_ptr线程局部存储的包装,它可用于封装线程独立的全局变量。每一个线程第一次使用这个智能指针的实例时,它的初值是NULL(所以必须要先检查这个它的值是否为空),在每个线程使用它之前需要new一个对象交给全局的threah_specific_ptr进行管理

boost库下process写守护进程

让人想犯罪 __ 提交于 2019-12-19 18:07:16
#include <iostream> #include <boost/process.hpp> #include <filesystem> int main(int argc, char* argv[]) { //此进程一定要防止多开 std::string exe_name("C:\\Users\\yinpinghua\\source\\repos\\ConsoleApplication2\\x64\\Debug\\ConsoleApplication2.exe"); //c++17语法 if (!std::filesystem::exists(exe_name)) { std::cout << "进程不存在" << std::endl; return 0; } while (true) { try { //输入到控制台上 boost::process::child child_process(exe_name, boost::process::std_out > stdout, boost::process::std_err > stderr); child_process.wait(); } catch (const std::exception & e) { std::cout << e.what() << std::endl; return 0; } catch (..

VC利用boost库解析正则表达式

眉间皱痕 提交于 2019-12-17 14:45:36
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> VC利用boost库解析正则表达式 最近做数据库涉及到解析sql语句,觉得最好的办法是写正则表达式解析,由于vc6没有解析函数,自己写又不甘心,后来从网上找到了boost库,解决了这个问题. boost下载地址:http://www.boost.org boost库安装比较麻烦,需要自己编译源文件,我整理了一下,如果仅仅需要做正则表达式,按下面的代码敲就行了. cmd vcvars32.bat cd D:/boost_1_32_0/libs/regex/build d: nmake -fvc6.mak nmake -fvc6.mak install 注意,别看下载下来的数据包没有多大,解压缩之后达到了100多M,编译完之后为109M,占用131M,所以安装时一定注意空出足够的空间,敲入nmake -fvc6.mak后等待的时间比较长,屏幕上还会出现一大堆英语,可以不做考虑.按照步骤往下敲就行了.压缩包内文档很详细,参照文档继续就可以了. 在VC6中集成:Tools->Options->Directories->Include files 加入:D:/boost_1_32_0 编写一个源程序测试一下: #include "stdafx.h" #include <cstdlib> #include <stdlib

VS2008中使用正则表达式库Boost.Regex

泪湿孤枕 提交于 2019-12-17 13:21:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> VS2008中使用正则表达式库Boost.Regex 2011-04-14 10:10 在VS2008中要使用Boost.Regex正则表达式库,首先需要在编译器中添加Boost的lib目录,否则编译将会出现如下错误提示: 1>------ 已启动生成: 项目: vs08, 配置: Debug Win32 ------ 1>正在编译... 1>vs08.cpp 1>正在链接... 1>LINK : fatal error LNK1104: 无法打开文件“libboost_regex-vc90-mt-sgd-1_44.lib” 1>生成日志保存在“file://e:\Do\vs08\vs08\Debug\BuildLog.htm” 1>vs08 - 1 个错误,0 个警告 ========== 生成: 成功 0 个,失败 1 个,最新 1 个,跳过 0 个 ========== 添加lib的方法: 方法1:依次点击“项目——配置属性——链接器——常规”,在“附加库目录”中加入lib所在目录。例如,我的机子上是:"C:\Program Files\boost\boost_1_44\lib"。 方法2:将libboost_regex-vc90-mt-sgd-1_44.lib复制到工程目录下,然后在代码中添加如下声明:

Ubuntu 安装boost库

淺唱寂寞╮ 提交于 2019-12-10 22:05:31
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> sudo apt-get install libboost-dev libboost-dbg libboost-doc bcp libboost-* 测试 #include <boost/lexical_cast.hpp> #include <iostream> int main() { using boost::lexical_cast; int a = lexical_cast<int>("123456"); double b = lexical_cast<double>("123.456"); std::cout << a << std::endl; std::cout << b << std::endl; return 0; } 来源: oschina 链接: https://my.oschina.net/u/34208/blog/27988