boost库编译
boost库的介绍
Boost是什么?一套开放源代码、高度可移植的C++库。
谁发起的?C++标准委员会库工作组。
所以,质量保证,不怕遇到假冒伪劣产品。
Boost内容广泛,数值计算、泛型编程、元编程、平台API……不妨从容选择自己感兴趣的部分,细细品味。
有些什么呢?瞧瞧:字符串及文本处理Boost.Regex正则表达式是解决大量模式匹配问题的基础。
它们常用于处理大的字符串,子串模糊查找,按某种格式tokenize字符串,或者是基于某种规则修改字符串。
由于C++没有提供正则表达式支持,使得有些用户被迫转向其它支持正则表达式的语言,如Perl, awk, 和 sed。
Regex提供了高效和强大的正则表达式支持,基于与STL同样的前提而设计,这使得它很容易使用。
Regex已被即将发布的Library Technical Report接受。
更多的信息,请见"Library 5: Regex.".Boost.SpiritSpirit库是一个多用途的、递归的语法分析器生成框架。
有了它,你可以创建命令行分析器,甚至是语言预处理器[1]。
它允许程序员直接在C++代码里使用(近似于)EBNF的语法来指定语法规则。
分析器非常难写,对于一个特定的问题,它们很快就变得难于维护和看懂。
而Spirit解决了这些问题,而且达到了与手工制作的分析器一样或几乎一样的性能。
Boost.String_algo这是一组与字符串相关的算法。
包括很多有用的算法,用于大小写转换,空格清除,字符串分割,查找及替换,等等。
这组算法是目前C++标准库里已有功能的扩展。
Boost.Tokenizer这个库提供了把字符序列分割成记号(token)的方法。
通用的语法分析任务包括了在已分割的文本流里查找数据。
如果可以把字符序列视为多个元素的容器将很有帮助,容器中的元素被执照用户定义的规则所分割。
语法分析就成为了在这些元素上进行操作的单个任务,Tokenizer正好提供了这种功能。
Vc6.0 Boost
vc6.0环境下编译Boost 1.34.1(2009-07-27 17:09:46)转载▼分类:电脑标签:杂谈今天在同学的帮助下,成功的在vc6.0中安装和编译boost库,遇到不少问题,并解决之,把过程大概写一下,以便以后参阅:(主要参考文章:/blog/cns!C523F565A10E3B66!749.entry/liroket/archive/2009/06/10/4257308.aspx)据说c6.0不支持目前比较新版本,如:boost1.36。
这里给出VC6.0编译boost1.34.1的流程。
1.从下载相对应版本的压缩文件,我下载的是boost_1_34_1.zip。
2.解压缩到本地磁盘(这里为d盘),进入F:\boost_1_34_1\tools\jam\src,鼠标右键-》编辑“build.bat”文件。
把if "_%ProgramFiles%_" == "__" set ProgramFiles=c:\Program Files改成自己vc6.0的安装路径,我的是d盘program files,因此我改成了if"_%ProgramFiles%_" == "__" set ProgramFiles=d:\Program Files然后,顺便检查一下该文件中if EXIST "%ProgramFiles%\Microsoft Visual Studio\VC98\bin\VCVARS32.BAT" (set "BOOST_JAM_TOOLSET=msvc"set "BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual Studio\VC98\"goto :eof)是否和你的vc6.0路径相同。
Boost1.62.0编译参数
Boost1.62.0编译参数Boost.Build 2015.07-git项⽬帮助:项⽬在Jamroot有Jamfile⽂件⽤法:B2 [options] [properties] [install|stage]构建和安装Boost⽬标及相关选项: Targets and Related Optionsinstall 将头⽂件和已编译的库⽂件安装到 Install headers and compiled library files to the======= 下列配置位置. configured locations (below).--prefix=<PREFIX> 架构独⽴⽂件安装⽬录 Install architecture independent files here.默认; C:\Boost Win32 Default; C:\Boost on Win32默认; /usr/local Unix. Linux, 等. Default; /usr/local on Unix. Linux, etc.--exec-prefix=<EPREFIX> 架构独⽴⽂件安装⽬录 Install architecture dependent files here.默认; <PREFIX> Default; <PREFIX>--libdir=<DIR> 库⽂件安装⽬录. Install library files here.默认; <EPREFIX>/lib Default; <EPREFIX>/lib--includedir=<HDRDIR> 头⽂件安装⽬录. Install header files here.默认; <PREFIX>/include Default; <PREFIX>/includestage 编译和安装已编译库⽂件到 Build and install only compiled library files to the===== stage⽬录. stage directory.--stagedir=<STAGEDIR> 库⽂件安装⽬录 Install library files hereDefault; ./stage Default; ./stageoptions:--build-type=<type> 编译指定预定义variant集的库. Build the specified pre-defined set of variations of 注意,在编译时使⽤哪些variant the libraries. Note, that which variants get built取决于每个库⽀持什么. depends on what each library supports.-- minimal -- (默认) 编译variant最⼩集. -- minimal -- (default) Builds a minimal set of在Windows上, 它们是使⽤共享运⾏库的 variants. On Windows, these are staticdebug和release静态多线程库. multithreaded libraries in debug and release在Linux上,它们是 modes, using shared runtime. On Linux, these arerelease静态和共享多线程库 static and shared multithreaded libraries inrelease mode.-- complete -- 编译所有可⽤variant. -- complete -- Build all possible variations.--build-dir=DIR 编译在此⽬录,⽽不是编译在 Build in this location instead of building within 代码⽬录。
boost的编译使用
boost的编译使用Boost是一个流行的C++库,它提供了许多功能强大的工具和组件,包括容器、算法、并发编程、图形学、网络编程等。
要使用Boost库,首先需要下载并安装Boost库,然后在编译和链接你的C++程序时包含相应的Boost头文件和链接Boost库文件。
下面我将从编译和使用Boost库的角度来详细介绍。
1. 下载和安装Boost库。
首先,你需要从Boost官方网站下载最新的Boost库源代码。
然后,解压缩文件并按照官方文档中的指导进行安装。
通常情况下,Boost提供了一个名为bootstrap.bat(Windows)或者bootstrap.sh(Linux)的脚本,你可以运行这个脚本来配置Boost 库。
接着,运行b2命令来编译Boost库。
2. 编译和链接Boost库。
一旦Boost库安装完成,你就可以在你的C++程序中使用它了。
在编译你的程序时,确保你的编译器能够找到Boost库的头文件。
你可以使用编译器的命令行选项或者在你的IDE中配置头文件搜索路径。
在链接你的程序时,确保你的编译器能够找到Boost库文件。
你需要指定Boost库文件的路径和库名字,具体的方法取决于你使用的编译器和操作系统。
3. 使用Boost库。
一旦你的程序成功编译和链接了Boost库,你就可以在你的代码中包含相应的Boost头文件,并使用Boost提供的功能和组件了。
比如,如果你想使用Boost的智能指针,你可以包含<boost/shared_ptr.hpp>头文件,并使用boost::shared_ptr类来管理动态分配的对象。
总之,要使用Boost库,你需要下载、安装Boost库,配置你的编译器,包含Boost头文件,链接Boost库文件,并在你的代码中使用Boost提供的功能和组件。
希望这些信息能够帮助你成功地编译和使用Boost库。
boost库的编译以及在CodeBlocks中的配置
Boost库的编译和在CodeBlocks的配置基本信息:时间:2012/11/2Boost库的版本:boost.1.51.0 release版CodeBlocks版本:编译前准备:如果是用gcc编译boost,首先一定要先安装MinGW或者安装带MinGW的CodeBlocks,并给gcc编译器置环境变量。
当然是可以使用VS编译boost库,使用vs新建一个工程编译boost库,可以参考:/boost.html本机使用的gcc的版本:步骤一,从boost的官方网站上下载最新的boost版本库,输入网址:如图所示,一般是官网上是都是最新的Release版和最新的Bata版,这里为了稳等的需求,一般是选择Release版的。
点击download进入下载的页面:这里可以根据网速的需求,下载不同的压缩格式,一般而言,不同的格式,因为压缩率的不同,解压缩的时间也不同。
步骤二.下载完成后,解压缩,解压的后的文件大概是400多MB。
解压后的文件的组织形式如下。
这里,新版的文件组织好像和以前的不同,双击图中的booststrap.bat 文件,此时会出现如下的窗口:这个窗口会出现几分钟,当它消失的会产生两个exe文件:单击并运行这两个文件中一个,一开始的时候,也不是很清楚两者有什么区别,但是后来发现,这俩个程序至少完成的功能是一样的。
运行bjam.exe时,此时,boost开始编译,大概是30-40分钟的样子(注意:不同电脑的时间是不同的,这是一因为编译的时候需要耗费大量的CPU资源和内存资源。
我的笔记本是i3 的处理器,2g 的内存),步骤三.由于是直接运行exe文件的,没看到最后的结果,可以自cmd命令行中,先进入当前的目录,输入cd D:\Users\xj\Downloads\boost_1_51_0\boost_1_51_0 再一次运行bjam.exe,可看到,如下的截图,说明编译成功。
注意,在编译中能会出现一些警告入文件找不到之类的,请忽略它。
pcre 编译以及简单匹配utf-8文本
给个例子:
这个例子我没有测试,东拼西凑而成的,也许无法运行,呵呵。。
参考 /sulliy/article/details/6247155
项目--》“工程的名字”属性-》连接器-》命令行。
在下面的命令行的EDIT控件中输入 pcre.obj
点下 应用 BUTTEN
==================sample===============
#define PCRE_STATIC // 静态库编译选项
#include <pcre.h>
#include <cstdio>
#include <iostream>
#include <fstream>
#define OVECCOUNT 300 /* should be a multiple of 3 */
using namespace std;
int main()
{
char *buffer;
int length;
{ // read a utf-8 file to buffer
ifstream is;
is.open ("a_utf_8.txt", ios::in );
pcre_free(re);
return 1;
}
printf("\nOK, has matched %d...\n\n", rc);
for (i = 0; i < rc; i++) {
char *substring_start = buffer + ovector[2*i];
Boost程序库完全开发指南:深入C ”准”标准库(第5版
3.10总结
4.1 noncopyable
4.2 ignore_unused
4.3 optional 4.4 assign
4.5 tribool 4.6 operators
4.7 exception 4.8 uuid
4.10 utility
4.9 config
4.11总结
5.1 lexical_cast 5.2 format
2.7 date_time库 的高级议题
2.8总结
3.2 scoped_ptr
3.1 smart_ptr库 概述
3.3 shared_ptr
3.4 weak_ptr
3.5 intrusive_ptr
3.6 pool库概述 3.7 pool
3.9 singleton_pool
3.8 object_pool
4
7.4 bimap
5 7.5
circular_bu ffer
01
7.6 tuple
02
7.7 any
03
7.8 variant
04
7.9 multi_ar ray
06
7.11总结
05
7.10 property _tree
8.2 minmax
8.1 foreach
8.3 minmax_element
目录分析
0.1关于本书 0.2读者对象
0.3术语与风格 0.4语言标准
0.6如何阅读本书
0.5本书的结构
0.7本书的源码
1.1简介 1.2开发环境
1.3构建工具 1.4总结
2.1 timer库概述 2.2 timer
2.3 progress_timer
boost安装
或
# ./bjam --build-type=complete --layout=tagged stage
或
# ./bjam
方法2:
# cd /usr/src/boost_1_40_0/tools/jam
# ./build_dist.sh
也会完成Linux平台bjam和Boost的所有编译工作,并生成所有调试版、发行版的静态库和动态库。但不推荐该方式。
方法2:
(1) # cd /usr/src/boost_1_40_0/tools/jam/src
(2) # ./build.sh
编译完成后:
生成的可执行文件为
# /usr/src/boost_1_40_0/tools/jam/src/bin.linuxx86/bjam
需要将bjam.exe拷贝到源代码所在的目录
3. 完整编译Boost
对Boost进行完整编译,生成所有调试版、发行版的静态库和动态库。
方法1:
# cd /usr/src
# wget /projects/boost/files/boost/1.40.0/boost_1_40_0.tar.bz2
# tar --bzip2 -xvf boost_1_40_0.tar.bz2
# cd boost_1_40_0
# bjam --toolset=gcc --build-type=complete stage
或
# ./bjam --build-type=complete --layout=versioned //库名带gcc版本
# cp bin.linuxx86/bjam /usr/src/boost_1_40_0
Boost库的安装与使用
Boost库在Windows及Linux上的安装及使用Windows with VS20101.安装VS20102.下载安装Python (编译Boost库时需要)https:///3.下载 最新boost库/projects/boost/files/latest/download4.解压到指定目录。
例如:D:\boost_1_57_0这时,大部分库可以用了,但是与操作系统相关的部分还需要Build.比如thread库。
5.编译boost库运行command window. 开始菜单/运行/cmd输入Dos命令:d:输入Dos命令:cd d:\boost_1_57_0运行批处理:bootstrap.bat运行完后输入命令:./b2编译结束后就可以使用了6. 设置VS2010添加include 路径:d:\boost_1_57_0添加library路径: d:\stage\lib (编译好后产生的)Linux with GCC1.下载安装Python (编译Boost库时需要)https:///2.下载 最新boost库/projects/boost/files/latest/download3.解压到指定目录例如:/usr/boost_1_57_0这时,大部分库可以用了,但是与操作系统相关的部分还需要Build.比如thread库。
4.Build boost库运行命令窗口,将当前路径切到/usr/boost_1_57_0输入命令:./bootstrap.sh运行完后输入命令:./b2编译结束后就可以使用了5.编译使用boost库的项目例如程序文件为test.cppg++ -c test.cpp -o test.o –I/usr/boost_1_57_0g++ -o test test.o boost_thread.a–lstc++ -pthread –lrt-L/usr/boost_1_57_0/stage/lib注意:如果在使用STL库时报很多undefine的错误,多半是没有link STL 库的原因。
boost编译流程
boost编译流程Boost是一个由一系列C++库组成的开源项目,这些库提供了广泛的功能,用于增强C++语言的能力。
Boost库被广泛应用于C++开发中,它可以提供许多有用的功能,例如算法、容器、多线程、文件系统、正则表达式等等。
Boost库的编译流程相对简单,本文将介绍Boost库的编译流程及相关内容。
一、获取Boost库源代码二、解压源代码包1. boost - 该目录包含了所有的Boost库源代码2. doc - 该目录包含了Boost库的文档3. libs - 该目录包含了所有的Boost库的源代码和构建文件4. tools - 该目录包含了一些构建和安装工具三、构建Boost库进入解压后的源代码目录,打开终端或命令提示符,执行以下命令,进入Boost库的构建环境:$ ./bootstrap.sh (Linux和MacOS)或者$ .\bootstrap.bat (Windows)执行成功后,会生成一个名为b2或bjam的可执行文件,该文件是用于构建Boost库的工具。
四、编译Boost库在构建环境中执行以下命令,编译Boost库:$ ./b2 (Linux和MacOS)或者$ .\b2.exe (Windows)默认情况下,Boost库会在构建目录下的stage/lib目录中生成编译好的库文件。
使用者可以自行设置构建参数,控制Boost库的编译行为。
例如,可以通过指定编译器、选择要构建的库等方式来定制Boost库的编译。
五、安装Boost库执行以下命令,将编译好的Boost库安装到系统中:$ sudo ./b2 install (Linux和MacOS)或者$ .\b2.exe install (Windows)默认情况下,Boost库会被安装到系统的默认位置。
但是,使用者也可以通过设置install_path参数来指定安装路径。
六、配置开发环境将Boost库安装到系统后,需要配置开发环境,以便编译和链接Boost库。
boost在VS2010下的安装
其他版本也可用类似的方法进行编译
第一步:到官网,下载boost最新版boost_1_47_0.zip
第二步:将boost压缩包解压到C盘根目录下(在C盘操作简单,不会出错),目录为C:\BOOST_1_47_0,里面就是boost的源码和需要编译的文件及文档资料
第三步:用打开一个cmd命令窗口,在C:\Program Files\Microsoft Visual Studio 10.0\VC\bin目录下找到VCVARS32.bat,拖到cmd命令窗口,按回车
第四步:将cmd中的目录跳转到C:/boost_1_47_0/tools/build/v2下,拖动bootstrap.bat批处理文件到cmd,,按回车键,随即就会在C:/boost_1_47_0/tools/build/v2下生产一个bjam.exe和b2.exe。
第五步: 将bjam.exe复制或移动到boost的根目录下,即C:/boost_1_47_0下面。
然后在vc2010的工程目录下include项中包含C:\boost_1_47_0\bin.v2\libs,在lib目录下包含boost_files目录(自己最后保存编译的dll和lib文件的目录)
使用时,要在工程中包含相应的头文件。
最后申明:我是亲手实验每一步的过程所得结果,因为编译器版本和操作的原因,如您不能正常编译,请仔细检查原因或与给我留言。
第六步:将cmd命令中的目录跳到oolset=msvc-10.0 --build-type=complete stage 回车,等待20多分钟,编译就完成了
注意:整个操作过程中cmd命令窗口必须保证是开始打开的那个
附1:cmd 目录跳转指令 举例,例如,跳到d盘下的一个名为test的目录下,则输入cd d:\test按回车。
C++的boost库的编译安装
ICU编译(VS2010):ICU提供了unicode和国际化支持,目前的版本是 4.8.1。
ICU的主页是/。
(1). 下载可以从/projects/icu/files/下载源代码版本。
4.8.1是VS2010的,4.4.2才是VS2008的,如果是2010要做转换。
(2). 编译ICU的编译比较简单,打开ICU源代码目录下的source\allinone\allinone.sln,需要转换到VS2008格式,直接转换即可。
然后,选择release,Rebuild Solution即可。
(3). 测试将编译出来的bin目录加入到系统的PATH目录中去。
然后,重新打开allinone.sln工程。
需要通过测试的项目1. cintltst项目2. intltest项目3. iotest分别设置成启动项目,运行即可。
2. bzipbzip的主页是/,从/downloads.html下面下载源代码包即可,boost直接使用源代码来进行编译。
3. zlibzlib的主页是/,/projects/gnuwin32/files/zlib/从该网页下面下载源代码包即可,boost直接使用源代码来进行编译。
4. pythonpython的主页是/,下载python的2.5.2版本,安装即可。
boost默认是会编译python,并且会自动寻找python的安装目录。
ICU编译(MinGW):还未成功编译第一步:到官网,下载boost最新版boost_1_47_0.zip第二步:将boost压缩包解压到C盘根目录下(在C盘操作简单,不会出错),目录为C:\BOOST_1_47_0,里面就是boost的源码和需要编译的文件及文档资料第三步:用打开一个cmd命令窗口,在C:\Program Files\Microsoft Visual Studio 10.0\VC\bin目录下找到VCVARS32.bat,拖到cmd命令窗口,按回车第四步:将cmd中的目录跳转到C:/boost_1_47_0/tools/build/v2下,拖动bootstrap.bat批处理文件到cmd,,按回车键,随即就会在C:/boost_1_47_0/tools/build/v2下生产一个bjam.exe和b2.exe。
boost下载安装编译
理论上,本文适用于boost的各个版本,尤其是最新版本1.39.0;适用于各种C++编译器,如VC6.0,VS2003, VS2005,VS2008,gcc,C++ Builder等。
一、下载首先从boost官方主页下载最新版boost安装包(目前最新版是1.39.0)。
因为boost一部分类是需要编译成库才能使用的,所以我们还需要准备好boost专用的编译辅助工具bjam。
网上很多人都提倡直接使用boost安装包中附带的bjam源码来编译出bjam,但是之前需要修改若干配置脚本才能编译成功。
个人认为真没什么必要,费这劲毫无意义。
boost官方网站在提供boost安装包下载链接的同时也提供与该版本安装包对应的bjam的下载,只有200多KB,可以一同下载下来。
二、安装将boost安装包解压至本地目录,如:E:SDKboost_1_39_0,然后将bjam.exe拷贝到该目录下(bjam必须与boost-build.jam在同级目录)。
三、编译接下来就是最重要的编译步骤了。
需要打开命令提示符(cmd.exe)窗口并执行bjam,可以使用--help 参数来查看命令帮助。
这里详细讲解一下bjam的命令行参数,因为它非常重要。
首先,它涉及到编程环境的搭建,你需要根据自己今后具体的使用环境来选择合适的命令行参数;其次,它影响到你的硬盘空间,完全编译的话据说在3G以上,如果你同时拥有2个以上的IDE(如VC6和VC9共存)而且都要用到boost,那么占用多少硬盘就自己算吧……虽说如今大家的硬盘空间都不成问题,但就像本人一样崇尚合理利用资源不习惯铺张浪费提倡节俭的童子应该大有人在。
综合以上两点因素,本人使用的bjam命令如下:bjam stage --toolset=msvc-9.0 --without-python--stagedir="E:SDKboost_1_39_0vc9" link=shared runtime-link=shared threading=multi debug release下面详细解释一下每个参数的含义,请务必仔细看完:stage/install:stage表示只生成库(dll和lib),install还会生成包含头文件的include目录。
boost安装
boost 1_33_1在VC6.0上的安装、编译、配置2008-03-05 20:52转载自:/roger_77/archive/2006/01/13/577998.aspx最近要使用boost库来进行一些跨平台的开发,比如使用thread线程库来开发多线程的程序。
在网上找了一下,大部分关于boost安装编译的文档是在环境下进行的,关于boost 在VC6.0上进行编译的比较少,由于本人的主要开发环境是VC6.0,所以自己动手进行了下面的boost配置编译工作。
一.编译前的准备.本人的VS6.0安装在“D:\Program Files\Microsoft Visual Studio”目录,下载boost的地址"/boost/boost_1_33_1.zip?download",boost解压后的根目录为:"D:\C++\boost_1_33_1",可参考改为相应的目录即可。
二.编译步骤1.修改“D:\C++\boost_1_33_1\tools\build\jam_src\build.bat”中的所有:“C:\Program Files\Microsoft Visual Studio”为“D:\Program Files\Microsoft Visua l Studio”,也就是VS6.0的安装目录。
2.执行:“D:\C++\boost_1_33_1\tools\build\jam_src\build.bat”产生一个子文件夹“bin.ntx86”,里面有个可执行文件"bjam.exe"。
3.拷贝这个可执行文件"bjam.exe"放到“D:\C++\boost_1_33_1”目录.4.添加“D:\C++\boost_1_33_1”到操作系统的环境变量path中,SET path="D:\C++\boost_1_33_1";%PA TH%5.打开控制台(cmd),在命令行执行后面的步骤.5.1 先执行以下命令,设置VC编译环境:SET MSVC_ROOT="D:\Program Files\Microsoft Visual Studio\VC98"SET VISUALC="D:\Program Files\Microsoft Visual Studio\VC98"SET JAM_TOOLSET=VISUALCSET PYTHON_ROOT=D:\Program Files\Python2.2.2SET PYTHON_VERSION=2.25.2 进入“D:\Program Files\Microsoft Visual Studio\VC98\bin"目录,运行"VCV ARS32.BA T”,5.3 然后转到“D:\Program Files2\boost_1_33_1”目录,最后运行下面的命令来编译boost库:(仍然是同一个控制台窗口!否则无效)bjam -sBOOST_ROOT=. -sTOOLS=msvc "-sBUILD=debug release static/dynamic"6.编译过程在boost的根目录下产生“bin\boost\libs”文件夹,约130兆;整个过程约25分钟.7.为了以后在项目中配置方便,把编译出来的*.lib,*.dll文件搜索出来后,把这些文件统一放到一个自己新建的目录下,比如libs_vc6目录。
boost 编译参数
boost 编译参数boost是一个开源的C++库,提供了丰富的功能和工具,用于增强C++的性能和功能。
在编译boost库时,可以使用不同的编译参数来优化编译过程和生成的代码。
本文将介绍几个常用的boost编译参数,并对其功能和用法进行详细说明。
一、--with-<library>参数--with-<library>参数用于指定需要编译的boost库。
boost库提供了很多模块,如system、filesystem、thread等,可以根据具体需求选择需要编译的模块。
例如,使用--with-system参数可以编译boost.system库,用于处理系统相关的功能。
二、--without-<library>参数--without-<library>参数用于指定不需要编译的boost库。
如果不需要某个库的功能,可以使用该参数禁用对应的库的编译。
例如,使用--without-regex参数可以禁用正则表达式库的编译。
三、--build-type参数--build-type参数用于指定编译类型,常用的取值有debug和release。
debug类型用于调试和测试,生成的代码包含调试信息;release类型用于发布,生成的代码进行了优化,更加高效。
可以根据具体需求选择编译类型。
四、--toolset参数--toolset参数用于指定编译工具集,如gcc、clang、msvc等。
不同的编译工具集有不同的编译器和选项,可以根据具体需求选择合适的编译工具集。
例如,使用--toolset=gcc可以指定使用gcc编译器进行编译。
五、--cxxflags参数--cxxflags参数用于指定额外的编译选项。
可以使用该参数添加自定义的编译选项,如优化级别、警告级别等。
例如,使用--cxxflags="-O2 -Wall"可以指定编译器使用级别为2的优化,并开启所有警告。
boost 编译参数
boost 编译参数摘要:1.编译参数简介2.Boost 编译参数的作用3.Boost 编译参数的设置方法4.Boost 编译参数的常见问题及解决方法5.总结正文:Boost 是一个广泛应用于C++编程语言的开源库,它提供了许多有用的功能,例如智能指针、正则表达式、文件系统操作等。
在使用Boost 库进行编程时,我们需要对其进行编译,而编译过程中所使用的参数可以影响编译的结果。
因此,了解Boost 编译参数的作用及设置方法是非常有必要的。
首先,让我们了解一下Boost 编译参数。
编译参数,也称为编译选项或编译开关,是在编译源代码时告诉编译器如何处理源代码的一种方式。
Boost 编译参数主要用于控制编译器的行为,例如选择编译器支持的特性、优化编译等。
接下来,我们来探讨一下Boost 编译参数的作用。
Boost 编译参数可以帮助我们实现以下目标:1.选择编译器支持的特性。
Boost 库提供了许多高级特性,但并非所有编译器都支持这些特性。
通过设置编译参数,我们可以选择编译器支持的特性,从而确保编译的顺利进行。
2.优化编译结果。
通过设置编译参数,我们可以控制编译器生成的代码的性能和体积。
例如,我们可以使用编译参数启用编译器的优化功能,从而生成更高效的可执行文件。
3.控制编译过程的行为。
通过设置编译参数,我们可以控制编译器在编译过程中的行为。
例如,我们可以设置编译参数以启用或禁用编译器警告,或者控制编译器如何处理未定义的行为。
那么,如何设置Boost 编译参数呢?我们可以通过修改Boost 库的配置文件(例如,`project-config.jam`)或直接在编译命令行中指定编译参数。
具体方法取决于我们使用的编译器和构建工具。
在设置Boost 编译参数时,我们需要注意以下几点:1.确保所使用的编译器支持Boost 库。
不同的编译器对Boost 库的支持程度不同,因此在设置编译参数之前,我们需要确保所使用的编译器支持Boost 库。
boost的编译使用
boost的编译使用Boost是一个开源的C++库集合,提供了各种功能和工具,用于加速C++应用程序的开发过程。
它旨在提高C++程序的性能、可移植性和功能扩展性。
Boost库被广泛应用于各种领域,如网络编程、多线程编程、图形图像处理等。
Boost的编译使用非常简单,只需按照以下步骤进行即可:1. 下载Boost库:从官方网站下载最新版本的Boost库,解压缩到任意目录。
2. 设置环境变量:将Boost库所在目录添加到系统的环境变量中,以便编译器可以找到Boost库的头文件和库文件。
3. 编写代码:使用Boost库提供的功能和工具编写C++代码。
比如,如果需要使用Boost的字符串处理功能,只需包含相应的头文件,并使用Boost命名空间即可。
4. 编译代码:使用C++编译器编译代码。
在编译时,需要指定Boost 库的路径和库文件名。
5. 运行程序:编译成功后,就可以运行生成的可执行文件了。
根据具体的应用场景,可能需要提供一些参数或输入文件。
Boost库提供了丰富多样的功能和工具,可以大大简化C++程序的开发过程。
比如,Boost的智能指针可以帮助管理动态内存,避免内存泄漏;Boost的多线程库可以方便地实现并发编程;Boost的正则表达式库可以进行强大的文本匹配和处理等等。
Boost是一个功能强大的C++库集合,可以提高C++程序的开发效率和性能。
使用Boost库,开发者可以更加专注于业务逻辑的实现,而不必过多关注底层的细节。
同时,Boost库的开源性和广泛应用性也使得开发者可以从社区中获得丰富的资源和支持。
无论是初学者还是有经验的开发者,都可以从Boost库中受益,并加速自己的C++开发过程。
Boost库的编译
-- 输出: libboost_regex-vc90-mt-s.lib
libboost_regex-vc90-mt-1_44.lib
(4)生成 Release 版本,多线程,静态链接C++标准库 的regex 静态库
bjam --toolset=msvc-9.0 --stagedir=D:\ThirdParty\boost_1_44_0\boost-1_44\stage --with-regex link=static threading=multi variant=release runtime-link=static stage
【注意】: Boost 源代码所在路径最好全英文,不要有空格、特殊字符、中文等
编译要花上30分钟左右(根据PC性能所定), 会在指定生成目录:
D:\ThirdParty\boost_1_44_0\boost-1_44\stage下生成对应库文件和头文件。
Bjam 选项、参数说明
--build-dir=<builddir> 编译的临时文件会放在builddir里(编译完就可以把它删除了)
-- 输出: libboost_regex-vc90-mt-gd.lib
libboost_regex-vc90-mt-gd-1_44.lib
(2)生成 Debug 版本,多线程,静态链接C++标准库 的regex 静态库
bjam --toolset=msvc-9.0 --stagedir=D:\ThirdParty\boost_1_44_0\boost-1_44\stage --with-regex link=static threading=multi variant=debug runtime-link=static stage
linux下boost编译
2.编译,运行
--g++ -o test test.cpp
#ls
test test.cpp
# ./test
123456
123.456
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;
所以编译完了是这样的
5.update动态链接库: sudo ldconfig
安装完毕
三,测试使用:
1.测试代码
#cat test.cpp
#include <boost/lexical_cast.hpp>
#include <iostream>
int main()
{
using boost::lexical_cast;
The following directory should be added to linker library paths:
/home/terry/Local/boost_1_47_0/stage/lib
因为我是解压到/home/terry/Local/boost_1_46_1下了
搜到所有的boost库
然后:
sudo apt-get install libboost-all-dev
安装相应的库
boost 编译 参数
boost 编译参数使用Boost编译参数优化C++程序的方法引言:在C++编程中,程序的性能优化是一个重要的问题。
而Boost是一个C++库的集合,提供了许多实用的工具和组件,可以帮助我们更高效地编写C++程序。
本文将介绍如何使用Boost编译参数来优化C++程序的性能。
一、了解Boost编译参数的作用Boost提供了一些编译参数,可以在编译C++程序时对程序进行优化。
这些编译参数可以帮助我们提高程序的性能,减少内存的占用,提高代码质量等。
二、使用Boost编译参数进行性能优化1. 使用`-O`参数进行编译优化。
`-O`参数是GCC编译器的一个优化选项,它可以对代码进行优化,提高程序的执行速度。
在使用Boost时,我们可以将该参数与其他Boost编译参数一起使用,以获得更好的性能优化效果。
2. 使用`-DNDEBUG`参数进行代码优化。
`-DNDEBUG`参数可以关闭断言,从而减少程序的运行时间。
在使用Boost时,我们可以通过在编译命令中添加`-DNDEBUG`参数来关闭断言,以提高程序的性能。
3. 使用`-march=native`参数进行硬件优化。
`-march=native`参数告诉编译器使用本地处理器的最佳指令集。
这样可以充分利用处理器的特性,提高代码的执行效率。
在使用Boost时,我们可以通过在编译命令中添加`-march=native`参数来进行硬件优化。
4. 使用`-finline-functions`参数进行函数内联。
函数内联可以减少函数调用的开销,提高程序的执行速度。
在使用Boost时,我们可以通过在编译命令中添加`-finline-functions`参数来进行函数内联优化。
5. 使用`-fno-exceptions`参数进行异常处理优化。
异常处理是一种消耗资源的操作,对程序的性能有一定的影响。
在使用Boost时,如果我们确定程序中不会出现异常,可以通过在编译命令中添加`-fno-exceptions`参数来关闭异常处理,以提高程序的性能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
①打开你是boost_1_37_0文件夹②打开tools/jam/src③点击build.bat稍等一下会生成一个新的文件夹,打开里面有一个bjam.exe,复制它然后将它粘贴到boost_1_37_0文件夹里面然后打开vc2005的命令行:开始->所有程序->visualstudio 2005->visual sudio tools->命令提示(也就是那个黑色doc的标志)(许多人用cmd 那个doc命令,许多情况下是不行的,我就试过)假如你的boost文件夹在E:/boost_1_37_0;那么可以这样打命令:1 E:然后回车2 cd boost_1_37_0 然后回车3 bjam.exe 然后回车你的boost库就开始编译了,时间很长~剩下的别人也说得较为清楚,呵呵,;-),我玩boost很久了,从1.34开始就一直玩,很不错4回答者:a_xr13800 - 二级 2009-1-7 22:01我来评论>>提问者对于答案的评价:谢谢哦相关内容• boost 1_33_1 在VC6.0上的安装出现问题 2006-12-17• 1.0 bar boost是什么意思 2009-2-7• 笔记本《上、下、左、右,》键不起作用调不成boost引导顺序,怎样装系统啊 2010-5-12• 联想Y460 I3 intel turbo boost technology device驱动装不了,是什么原因 3 2010-8-1• 我的主板是技嘉770t-us3 装了easy tune 6 可是找不到easyboost 2010-4-28等待您来回答更多∙2回答为什么不用卫星来测控嫦娥二号?∙2回答xyhhdh商业理财∙0回答最近刚买的房子,走的是商业贷款,现交完订金,马上就去交首付款,我...∙0回答用VS2008 新建一个MFC单文档工程,菜单里的改变应用程序外观是怎么实现...∙1回答visual studio 2008 SP1里有STL吗??∙2回答各位编程爱好者,请帮我看看这道C语言题,将中缀表达式转化为后缀表达...∙2回答请问高手,汉武大帝第七集里贵妃们玩的什么游戏???1回答嫦娥二号卫星将在盲控状态下拍月球正面照的电头是什么其他回答共 2 条检举link命令行参数中path 没有把路径加进去。
回答者:雨落深山 - 五级 2008-12-28 12:38检举通常我们使用Boost是不需要编译的,所以不会出现这样的情况,当你使用Boost 的部分需要编译的库的时候就会出现上面所说的这种情况,比如说你所要使用的正则表达式。
所以你现在需要编译Boost1.37.2.3. 安装boostboost是一套开放源代码的,高度可移植的C++库。
它相当于C++标准库(STL)的改进与扩展。
并且,它其中的不少模块,已被下一代C++标准库采用。
的确,boost 库非常注重与C++标准库之间协同性,用户对STL的许多学习或使用的体验,在接触boost时,会很自然地“似曾相识”。
定位上,boost 库希望自己是一个可用于广泛的、不同业务方向的应用都能使用的基础库——这完全和STL的定义一致,但STL太过于基础了,我们来做一个比较吧。
首先,boost是一个基础库。
boost不像wxWidgets那样具备一个明确的业务方向:GUI(虽然wxWidgets也提供了众多其它功能)。
boost提供的功能偏向基础设施,所以它的应用目标更为广泛。
然后,boost和STL比较,STL作为C++必须实现的标准库,它几乎就是在提供成型的,可复用的“数据结构”与“算法”的大全。
boost,特别是2008年发布的1.36版,提供了大量高级功能。
当前包括:“正则表达式”、“线程”、“网络”、“数学”、“图(数学)”、“字符串”、“CRC校验”、“文件”、“日期、时间”、“图(图形处理)”等等模块。
如果在不同语言之间做横向比较,那么我们会发现,Java和C# (.NET)语言,它们的标准库所提供的功能无比广泛,而C++的标准库则相当可怜——甚至连“线程”都没有提供。
boost库非常好地弥补了C++的这一点不足。
和STL类似,boost大量采用现代C++的泛型编程技术。
因此多数模块,我们在使用时,仅仅需要引用其“头文件”;另外有10来个必须或者建议进行编译的模块——但本书下面的教程并没有对这10来个库进行完整编译——至少有两个原因:其一、我们并不立即就用到全部的boost库;其二、如果完整编译,需要使用的时间,可能长达5个小时。
2.3.1. 准备本书光盘自带了安装boost所需要的两个文件,您也可以上boost官方网站(参看本小节尾部的相关网址),下载这两个文件:boost 1.36.0 的源代码压缩文件,推荐下载 7zip 版本:boost_1_36_0.7z”。
boost 编译工具,请选择windows下的可执行文件:boost-jam-3.1.16-1-ntx86.zip下载后,得到源代码压缩文件,如果是7zip格式的“boost_1_36_0.7z”,约25M,解压后,将迅速变为175M,但这仅仅是源代码及文档的大小,在编译过程中,所需的空间更是惊人,请您保证解压缩后文件所在的磁盘驱动器,至少有5个G的可用空间。
boost 的编译工具,可以根据需要,将编译之后库文件,及不需要编译的头文件,统一复制到指定的目录,这样有利于我们得到一个“干净”的boost编译结果目录,本书将采用此方法。
下面,我们假设boost_1_36_0.7z被解压到“X:\tmp\boost_1_36_0”目录下,其中“X:”表示您选用的磁盘驱动器盘符,“tmp”是我们事先创建的文件夹,而“boost_1_36_0”则在解压以后得到。
我们把“X:\tmp\ boost_1_36_0”称为“boost安装源路径”。
接下来,假设我们希望它boost安装到“E:\ boost_1_36_0”目录下,请事先创建好这个文件夹,我们把这个路径,称为“boost安装目标路径”。
请解压“boost-jam-3.1.16-1-ntx86.zip”文件,得到bjam.exe,将它复制到boost安装源路径,即“X:\tmp\boost_1_36_0”之下。
2.3.2. 编译步骤1:打开“开始”菜单,选择“运行”,输入cmd,进入控制台窗口,然后在其内通过cd命令,切换到boost安装源路径下。
本例中为:“X:\tmp\boost_1_36_0”,则过程如下:X: (回车)cd tmp\boost_1_36_0 (回车)步骤2:继续上步,请在控制台内输入:bjam --show-libraries (回车)步骤3:正确情况下,将看到以下输出内容:The following libraries require building:- date_time- filesystem- function_types- graph- iostreams- math- mpi- program_options- python- regex- serialization- signals- system- test- thread- wave步骤4:这里列出的是所有需要编译的boost模块,但我们将放弃对以下模块的编译: wave、mpi、 python、math、graph。
这些模块的具体含义,大家如有需要,请自行查明。
步骤5:继续上步,在控制台内输入:bjam install --toolset=gcc --prefix="E:\boost_1_36_0" debug--without-wave --without-mpi --without-python --without-math--without-graph (回车)步骤6:请特别注意其中加粗部分,更换为您自己的“boost安装目标路径”。
其它部分作如下说明:步骤7:-- 是两个连续的减号,=前后均不能夹带空格,除路径之外,参数都是小写字母。
步骤8:--toolset 表示采用gcc编译。
这里指的mingw32下的gcc。
因此,要正确编译boost,请您一定事先已完成2.1小节中,有关Code::Blocks下mingw32环境的安装。
步骤9:debug表示我们首先编译“调试版”。
步骤10:多个 --without 指定了所要放弃编译的模块。
步骤11:回车后,控制台内将出现大量看似奇奇怪怪地文字,最后能看到以下内容,就表示成功完成本步:...failed updating 2 targets....skipped 31 targets......updated 341 targets...步骤12:继续上步,在控制台内输入:bjam install --toolset=gcc --prefix="E:\boost_1_36_0" release--without-wave --without-mpi --without-python --without-math--without-graph (回车)步骤13:改变的是“debug”更换为“release”。
回车后开始发行版的boost 库编译。
2.3.3. 补充如果您的硬盘还有很大的空闲,比如还有50G空间没用上呢,那么我们也不反对——应该说是非常地支持——事实上是非常地艳羡——您完整地编译boost。
〖危险〗:编译boost:时间与空间双重负担没错,我们马上就要提供“boost完全编译”的方法,但先要郑重提醒您:完整编译boost,不仅需要接近5个小时的等待,而且在空间上,需要高达12~15G 的磁盘空间。
完整编译boost的命令行:bjam install --toolset=gcc --prefix="您的\boost\安装\目标路径"--build-type=complete2.3.4. 结束检查“boost安装目标路径”,应该可以看到两个子目录位于其内:“include”及“lib”,前者保存着所有采用纯头文件形式提供的boost代码文件;后者则保留着上一步的编译结果,这些库文件首先可以区分为以下三种形式:“动态链接库”,扩展名以.dll结束“导入库”,扩展名以.lib结束,且文件名以版本号1_36结束“静态链接库”,以扩展名.lib结束。
然后三种形式再次区分为“发行版”和“调试版”,后者的文件名比前者多出一个“-d-”修饰。
另外我们还可以看到所有库文件名中都带有“-mt-”字样,这是表示这些库都支持“多线程/Multithreads”。