一、在
ubuntu
下编译一个
C++
文件
1.
新建一个
11.cpp
2.
安装
g++
并编译
11.cpp
apt-get install g++ g++ -o aa 11.cpp
-o
编译生成指定名字的执行文件
3.
运行文件
./aa
一、
什么是
boost
Boost
是一个功能强大,构造精良、跨越平台、代码开源、完全免费的
C++
程序库
C++11
标准库中
2/3
来自
boost
,因此
boost
是一个
C++
”
准
”
标准库。
Boost库
是一个可移植、提供源代码的
C++
库,作为标准库的后备,是
C++
标准化进程的开发引擎之一。
Boost库
由
C++
标准委员会库工作组成员发起,其中有些内容有望成为下一代
C++标准库
内容。
Boost.Asio
是一个跨平台的、主要用于网络和其他一些底层输入
/
输出编程的
C++
库。
Boost
库大部分类库是不需要编译,直接包含头文件即可。
例:要使用
shared_ptr
,只需在程序中
#include<boost/shared_ptr.hpp>
二、安装
boost
库
boost
中用到了别的函数库,所以为了使用
boost
中相应的功能,需要先安装系统中可能缺失的库
apt-get install mpi-default-dev
#
安装
mpi
库
apt-get install libicu-dev
#
支持正则表达式的
UNICODE
字符集
apt-get install python-dev
#
需要
python
的话
apt-get install libbz2-dev
#
如果编译出现错误:
bzlib.h: No such file or directory
如果在安装以上库失败的话可以尝试一下用
sudo apt-get update
boost_1_64_0.tar.gz
包地址:
解压:
tar -zxvf boost_1_64_0.tar.gz
运行 ./bootstrap.sh
./b2 install
测试程序:
#include
<boost/asio/yield.hpp>
#include
<boost/asio/coroutine.hpp>
#include
<iostream>
boost::asio::coroutine c;
void
foo(
int
i)
{ reenter(c)
{
yield
std::cout<<
"foo1 "
<<i<<std::endl;
fork foo(
100
);
yield
std::cout<<
"foo2 "
<< i+
1
<<std::endl;
}
}
int
main() {
foo(
1
); foo(
2
); foo(
3
);
return
0
;
}
编译并运行
test.cpp