Windows下如何使用BOOST C++库
cheungmine@gmail.com
2008-7-10
我采用的是VC8.0和boost_1_35_0。自己重新编译boost当然可以,但是我使用了
http://www.boostpro.com/products/free
提供的安装工具 BoostPro 1.35.0 Installer (192K .exe) 。我强烈建议使用这个工具来在Windows下安装BOOST库和源文件。
1)使用boost_1_35_0_setup.exe这个工具下载boost库,选择你要的包(类型总是Mutilthread和Mutithread Debug),下载后自动安装。我用VC8.0的boost_1_35_0安装在E:/boost。我主要介绍用RegEx和Signals这2个需要编译后才能使用的库,
2)我在VC8.0下建立了一个Console工程,并为工程添加了VC包含目录:E:/boost/boost_1_35_0,和库目录:E:/boost/boost_1_35_0/lib。不需要指定链接哪个库,因为系统会自动查找的。
3)需要注意的是,我不使用动态链接库,因为一堆的警告,让我恐惧。因此我使用静态的连接库,就是名称前有libboost-xxx样式的库。比如,要使用(注意与下面的名称完全一致):
Debug下:
libboost_signals-vc80-mt-gd-1_35.lib
libboost_regex-vc80-mt-gd-1_35.lib
Release下:
libboost_signals-vc80-mt-1_35.lib
libboost_regex-vc80-mt-1_35.lib
而VC的项目属性是:
Debug:多线程调试 DLL (/MDd),不采用Unicode
Release:多线程 DLL (/MD),不采用Unicode
尤其要注意,使用工具下载的时候,总是下载:
Mutilthread 和 Mutithread Debug
这样的好处是,我们是链接到静态的boost库,所以,不需要任何boost的dll。不要为了贪图小一点尺寸的运行时包而选择使用boost的动态库,起码我看那一堆的警告就不寒而栗。
下面就是个小例子,没任何警告,一切如期:
///////////////////////////////////////////////////////////////////////////////
// main.cpp
//
// 使用BOOST C++标准库
//
//
// <chsdate w:st="on" year="2008" month="7" day="10" islunardate="false" isrocdate="false">2008-7-10</chsdate> cheungmine
//
///////////////////////////////////////////////////////////////////////////////
#include <boost/lambda/lambda.hpp>
#include <boost/regex.hpp>
#include <iostream>
#include <cassert>
#include <boost/signals.hpp>
struct print_sum {
void operator()(int x, int y) const { std::cout << x+y << std::endl; }
};
struct print_product {
void operator()(int x, int y) const { std::cout << x*y << std::endl; }
};
//
// 主程序
//
int main(int argc, char** argv)
{
boost::signal2<void, int, int, boost::last_value<void>, std::string> sig;
sig.connect(print_sum());
sig.connect(print_product());
sig(3, 5);
std::string line;
boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );
while (std::cin)
{
std::getline(std::cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
std::cout << matches[2] << std::endl;
}
return 0;
}
分享到:
相关推荐
Boost项目(Boost C++ Libraries)是一个广泛使用的C++库集合,它提供了一系列广泛使用的任务和功能的实现,如智能指针、图形处理、数值分析、字符串和文本处理等。这些库几乎支持所有主流的操作系统,包括Windows、...
平台:Windows 文件名:boost_1_81_0.zip 官方网站:https://www.boost.org/ 官方下载地址:https://www.boost.org/users/download/ 使用教程:https://blog.csdn.net/doubleintfloat/article/details/123061700 ...
基于官网的boost.asio的HTTPS/SSL例子,包括server和client端,完整的windows VS编译环境,包含了完整的boost库和openssl库,编译配置测试说明文档,测试用的server.crt和server.key证书文件。如需linux版本,和自己...
该代码文件是在vs2010下编译并运行,使用者安装boost库并配置,即可直接使用,main函数写了一个上传的小demo,使用者可参考使用上传、下载、压缩等功能的使用。 1.本程序支持文件夹嵌套上传下载; 2.boost::...
Introduce: ... This article will introduce how to use the Boost library for template programming on the Windows platform, as well as some commonly used template-related functions in the Boo
这里是一个VS2017的windows桌面应用程序项目,项目已经配置了64位的OpenCV4.0库和64位的Boost库,其中OpenCV库和Boost库都安装在D盘里,大家可以在项目的附加库目录和包含目录里查看安装位置,以便大家顺利编译,...
Boost 适用于 几乎任何现代操作系统,包括 UNIX 和 Windows 变体。 Boost 提供免费的、可移植的同行评审的 C++ 库。重点是可移植库,它与 C++ 标准库配合得很好。
亲自编译的arm架构下的boost库文件,版本1.59。经测试可用。
基于官网的boost.asio的HTTPS/SSL例子,包括server和client端,完整的Linux编译环境,包含了完整的boost库和openssl库,编译配置测试说明文档,测试用的server.crt和server.key证书文件。如需windows版本,和自己...
《Boost深入剖析之使用技巧》第四讲:Boost容器库(中).flv 如果你还在为自己写的程序存在各种野指针,内存泄漏,甚至崩溃的问题而苦恼的话,请使用boost;如果你还在为自己写的程序存在很多与Windows依赖的操作导致...
Windows安装boost库 下载链接:https://www.boost.org/ 学习链接:https://theboostcpplibraries.com/ 1,下载解压,我的目录“C:\Program Files (x86)\Microsoft Visual Studio\2017” 2,以管理员身份运行“适用...
boost_!_46_1 已经用MinGW编译成功,注意是GCC在windows上的移植版本MinGW,看清楚再下载,大小34.6M,解压之后会达到900多M 这是动态链接库,如果你要头文件和源码的请到这里下载:http://www.boost.org/
1.下载boost库在windows下通过b2.exe自己尝试编译库文件,编译方法可参考本文。 boost库下载链接:下载链接 boost库编译方法:boost库编译方法 2.打开VS2019,新建类型为dll动态链接库的项目,起名TheAPP,测试程序如...
Boost_1.78.0 已经编译生成的库和头文件,及源码,使用文档等。下载后可以直接在项目中配置属性(visual studio 2019)。
C++与JS互调、异步网络通信文档_ _20190606.doc 一、 开发环境:Windows 10 、Cocos2d-JS 3.10 二、 开发工具:Visual Studio Code 、ADT 、NDKr10c 三、 异步网络通信库:Boost Asio
对于C++而言,当我们需要使用多线程时,可以使用boost::thread库或者自从C++ 11开始支持的std::thread,也可以使用操作系统相关的线程API,如在Linux上,可以使用pthread库。除此之外,还可以使用omp来使用多线程。...
最近开始使用 robot framework 测试c++的动态库,robot framework 是跑在 windows 上面,c++动态库是跑在远程linux主机上面。测试办法是让 robot framework 通过 SSHLIbrary 库执行远程机器上面的 python 脚本,...
boost介绍 boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大...Boost库使用Boost License来授权使用,根据该协议,商业的非商业的使用都是允许并鼓励的。 Boost
hello_ext.pyd就是python中能直接使用的动态链接库,windows一般以dll为后缀,而python只承认pyd文件. 下面来测试一下: import hello_ext print hello_ext.greet() print hello_ext.add(1,3) hello_ext.vprint() ...