当前位置:文档之家› vs2010下boost安装

vs2010下boost安装

vs2010下boost安装
vs2010下boost安装

vs2010下boost安装

vs2010下boost安装:

琢磨好久一直都没有安装成功,现在讲具体步骤写下来以备后续其他人之便。

下载boost

在boost官网上下载任何版本都可以https://www.doczj.com/doc/2f10909034.html,。

将boost压缩包解压到D盘目录下

(我下载的是boost_1_46_1.zip),目录为C:\BOOST_1_46_1,里面就是boost的源码和需要编译的文件及文档资料。

编译bjam

(1)从vs2010的工具菜单进入命令提示窗口(单击“开始”按钮,指向“所有程序”,指向“Microsoft Visual Studio 2010”,指向“Visual Studio tools(工具)”,然后单击“Visual Studio 2010 command prompt(命令提示)”

然后进入如下界面:

(2)cd到D:\boost\boost_1_46_1下执行bootstrap.bat,然后,会在D:\boost\boost_1_46_1\下生成bjam.exe

具体如下:

这样就进入boost_1_46_1下,再输入bootstrap.bat

等待一会儿即可生成bjam.exe。

编译boost库

將目录cd到D:\boost\boost_1_46_1\下执行

bjam stage--without-python--toolset=msvc-10.0--build-type=complete --stagedir="D:\boost\boost_1_46_0\bin\vc10" (这一步需要等待很长时间,大概一个小时左右……)

直到出现如下情况

编译完成

设定vs2010环境

打开VS2010 选择工具->选项->vc++目录

设置包含文件目录$lib-and-dll-out-dir$\include\boost-1_37\boost 设置引用文件目录:$lib-and-dll-out-dir$\lib

应用到的关键网页:

https://www.doczj.com/doc/2f10909034.html,/a/1979730/

https://www.doczj.com/doc/2f10909034.html,/flyinghare/archive/2010/10/31/126078.html

https://www.doczj.com/doc/2f10909034.html,/view/64a3b92b453610661ed9f482.html

boost库的介绍

Boost是什么?一套开放源代码、高度可移植的C++库。 谁发起的?C++标准委员会库工作组。所以,质量保证,不怕遇到假冒伪劣产品。 Boost内容广泛,数值计算、泛型编程、元编程、平台API……不妨从容选择自己感兴趣的部分,细细品味。 有些什么呢?瞧瞧: 字符串及文本处理 Boost.Regex 正则表达式是解决大量模式匹配问题的基础。它们常用于处理大的字符串,子串模糊查找,按某种格式tokenize字符串,或者是基于某种规则修改字符串。由于C++没有提供正则表达式支持,使得有些用户被迫转向其它支持正则表达式的语言,如Perl, awk, 和 sed。Regex提供了高效和强大的正则表达式支持,基于与STL同样的前提而设计,这使得它很容易使用。Regex已被即将发布的Library Technical Report接受。更多的信息,请见"Library 5: Regex.". Boost.Spirit Spirit库是一个多用途的、递归的语法分析器生成框架。有了它,你可以创建命令行分析器,甚至是语言预处理器[1]。它允许程序员直接在C++代码里使用(近似于)EBNF的语法来指定语法规则。分析器非常难写,对于一个特定的问题,它们很快就变得难于维护和看懂。而Spirit解决了这些问题,而且达到了与手工制作的分析器一样或几乎一样的性能。 Boost.String_algo 这是一组与字符串相关的算法。包括很多有用的算法,用于大小写转换,空格清除,字符串分割,查找及替换,等等。这组算法是目前C++标准库里已有功能的扩展。 Boost.Tokenizer 这个库提供了把字符序列分割成记号(token)的方法。通用的语法分析任务包括了在已分割的文本流里查找数据。如果可以把字符序列视为多个元素的容器将很有帮助,容器中的元素被执照用户定义的规则所分割。语法分析就成为了在这些元素上进行操作的单个任务,Tokenizer正好提供了这种功能。用户可以决定字符序列如何被分割,在用户请求新的元素时,库将找出相应的记号。 数据结构, 容器, 迭代器, 和算法 Boost.Any Any库支持类型安全地存储和获取任意类型的值。当你需要一个可变的类型时,有三种可能的解决方案:

VS2010发布、打包安装程序超全超详细

1、 在vs2010 选择“新建项目”→“其他项目类型”→“Visual Studio Installer→ 命名为:Setup1 。 这是在VS2010中将有三个文件夹, 1.“应用程序文件夹”表示要安装的应用程序需要添加的文件; 2.“用户的‘程序’菜单”表示:应用程序安装完,用户的“开始菜单”中的显示 的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe; 3.“用户桌面”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。 9、应用程序文件夹中点右键添加文件:表示添加要打包的文件; 添加的文件一般是已经编译过应用程序的debug目录下的文件;

如果debug 下面有子文件夹则需要“添加文件夹”,例如:data 然后把对应的子文件里的内容添加到此文件夹中; 把需要创建程序快捷方式的图标也添加进来:后缀名为:ico 10、在创建的项目名称(Setup1)上点击右键:属性

选择系统必备: 然后选择.NET的版本,和Windows Installer3.1(可选项) 选择:“从与我应用程序相同的位置下载系统必备组件” 这样安装包就会打包.NET FrameWork ,在安装时不会从网上下载.NET FrameWork组件;但是安装包会比较大。

VS2010发布.NET2.0的版本,在创建安装程序时,需要设置启动条件:在项目名称(setup1)上,点击右键选择“视图” “启动条件”:

然后VS2010会创建如下文件: 在“启动条件”中, 点击“.NET Framework”在Version上面选择.NET Framework 2.0; 这样.NET Framework 2.0上创建的项目在安装时,就不会安装.NET3.5或其他版本, 也不会重启(解决.NET 2.0 创建的项目,安装.NET FrameWork3.5的问题)。 11、设置安装文件的目录(路径): 创建的项目名称(setup1)点击左键(不是右键),在属性中设置参数如下图:

了解 Boost Filesystem Library

了解 Boost Filesystem Library C++语言(实际上是C++标准)的最常见问题之一是,缺乏定义良好的库来帮助处理文件系统查询和操作。由于这个原因,程序员不得不使用本机操作系统提供的应用程序编程接口(Application Program Interfaces,API),而这使得代码不能在平台之间移植。以下面的简单情况为例:您需要确定某个文件是否是Directory 类型。在Microsoft? Windows? 平台中,可以通过调用GetAttributes库函数(在windows.h 头文件中定义)进行此操作: DWORD GetFileAttributes (LPCTSTR lpFileName); 对于目录,所得到的结果应该为FILE_ATTRIBUTE_DIRECTORY,而您的代码必须检查是否为此结果。在UNIX? 和Linux? 平台上,可以通过使用stat或fstat函数及sys/stat.h 中定义的S_ISDIR 宏来实现相同的功能。您还必须理解stat结构。下面是对应的代码: #include #include int main() { struct stat s1; int status = stat(, &s1); printf(“Path is a directory : %d\n”, S_ISDIR(s1.st_mode)); return 0; } 对于I/O 操作较多的程序,这样的不一致就意味着需要进行大量的工程工作才能在平台间移植代码。正是因为这个原因,我们才引入了Boost Filesystem Library。这个广泛使用的库提供了安全、可移植且易用的C++接口,用于执行文件系统操作。可以从Boost站点免费下载此库。 使用boost::filesystem 的第一个程序 在深入研究Boost Filesystem Library 的更多细节之前,请看一下清单1中所示的代码;此代码使用Boost API 确定某个文件的类型是否为Directory。 清单1. 用于确定某个文件的类型是否为Directory 的代码 #include #include “boost/filesystem.hpp” int main() { boost::filesystem::path path("/usr/local/include"); // random pathname bool result = boost::filesystem::is_directory(path); printf(“Path is a directory : %d\n”, result); return 0; } 此代码非常明了易懂,您并不需要了解任何系统特定的例程。此代码经过验证,能在不用修改的情况下在gcc-3.4.4 和cl-13.10.3077 上成功编译。

光伏组件安装手册

安装手册 请在使用或者安装贝达系列太阳能光伏组件之前仔细阅读本手册。该光伏组件在光照情况下会产生电流电压。请遵守所有的电器安全防范措施。只有有资质的人员才可以安装或者维修该组件产品。请不要损坏太阳能电池组件或者造成太阳能电池组件表面的刮伤。潮湿的环境会有导电的危险,请不要在组件潮湿的时候对组件做任何操作。 1.安全预防措施 1.1光伏组件没有开关。只能通过将光伏组件挪离光照或者用布、硬纸板或者完全不透 光的材料遮挡,或者将组件正面放置在光滑、平坦的表面上才会使组件停止工作。 1.2光伏产品在光照情况下会产生直流电,所以会有电击或者烧伤的危险。即使在没有 连接负载或者外电路的情况下,组件也会产生电流电压。在光照大于5%的情况下,组件就会产生最大电压,随着光照强度的增大,产生的电流和功率也会不断增加。所以在阳光下对组件动作时,请使用绝缘工具,同时佩戴橡胶手套。最好,在操作过程中,把电池板表面用不透光材料覆盖。 1.3组件产生的功率可能会高于铭牌上的额定标称。工厂标准的额定输出是在光强 1000watts/m2,温度25℃,大气质量1.5的情况下测量的。雪和水的反射也会增加光强,因此会造成电流和输出功率的增大。另外,温度低于25℃时组件的电压和功率也会相应的增长。 1.4贝达太阳能电池组件的表面为钢化玻璃,但是操作时仍要小心,不合理的操作会造 成组件表面的钢化玻璃破碎。如果正面的玻璃破碎或者背面的聚合物烧坏,任何和组件表面或者铝合金边框的接触都可能造成电击,尤其在组件潮湿的情况下。破损的组件必须由专业人员妥善处理。 1.5贝达太阳能电池组件的设计是仅适用于陆地的,所以不能在太空、海洋或者聚光环 境使用。除了上述环境,组件也不能被安装在有可能接触到任何盐水或可能成为部分或全部淹没在淡水或海水的情况,建议把组件安装在离海最少500m的地方。 2.守则和条例 光伏组件的机械安装和电气安装应该参照相应的法规,包括电气法、建筑法和电力互联需求。这些条例随着安装地点的不同而不同,例如建筑屋顶安装、汽车应用等。要求也可能随着安装系统电压,使用直流或者交流的不同而不同。具体条款请联系当地的权威机构。 3.机械安装 3.1可以将组件按照从水平到垂直的任何一个角度安装。 3.2合适的安装倾角和面向的方位角应该以组件产品得到最多的光照为标准。 3.3应该通过组件背面的安装孔将组件安装在支架上。

VS2010-MFC编程入门

VS2010/MFC编程入门之前言 分类标签: 编程入门VC++VS2010MFC 鸡啄米的C++编程入门系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了一定的了解了。但是教程中讲的例子只是一个个简单的例程,并没有可视化窗口。鸡啄米在这套VS2010/MFC编程入门教程中将会给大家讲解怎样使用VS2010进行可视化编程,也就是基于窗口的程序。 C++编程入门系列主要偏重于理论方面的知识,目的是让大家打好底子,练好内功,在使用VC++编程时不至于丈二和尚摸不着头脑。本套教程也会涉及到VC++的原理性的东西,同样更重视实用性,让大家学完本套教程以后,基本的界面程序都能很容易编写出来。 VC++简介 VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别就在于,C ++是语言,而VC++是用C++语言编写程序的工具平台。VC++不仅是一个编译器更是一个集成开发环境,包括编辑器、调试器和编译器等,一般它包含在Visual Studio中。Visual Studio包含了VB、VC++、C#等编译环境。当然我们在使用VC++ 6.0的时候为了轻便,总是只单独安装VC++ 6.0。但自微软2002年发布Visual https://www.doczj.com/doc/2f10909034.html,以来,微软建立了在. NET框架上的代码托管机制,一个项目可以支持多种语言开发的组件,VC++同样被扩展为支持代码托管机制的开发环境,所以.NET Framework是必须的,也就不再有VC++的独立安装程序,不过可以在安装Visual Studio时只选择VC++进行安装。

VC++版本的选择:VS2010 因为VC++ 6.0以后的版本不再有独立的安装程序,所以鸡啄米在教程中将不会称VC++ 6. 0以后的版本为VC++ 7.0等等,而是用VC++所属的Visual Studio的版本名称代替,比如VS2003。 近些年VC++主要的版本包括:VC++ 6.0、VS2003、VS2005、VS2008和VS2010。 VC++ 6.0占用的系统资源比较少,打开工程、编译运行都比较快,所以赢得很多软件开发者的青睐。但因为它先于C++标准推出,所以对C++标准的支持不太好。举个例子: for(int i=0; i<5; i++) { a[i] = i; } for语句中声明的变量i,对于VC++ 6.0来说,出了for循环仍能使用。但很显然这与C++标准对于变量生存期的规定不符合。

boost升压电路

一种实用的BOOST电路 0 引言 在实际应用中经常会涉及到升压电路的设计,对于较大的功率输出,如70W以上的DC /DC升压电路,由于专用升压芯片内部开关管的限制,难于做到大功率升压变换,而且芯片的价格昂贵,在实际应用时受到很大限制。考虑到Boost升压结构外接开关管选择余地很大,选择合适的控制芯片,便可设计出大功率输出的DC/DC升压电路。 UC3842是一种电流型脉宽调制电源芯片,价格低廉,广泛应用于电子信息设备的电源电路设计,常用作隔离回扫式开关电源的控制电路,根据UC3842的功能特点,结合Boos t拓扑结构,完全可设计成电流型控制的升压DC/DC电路,且外接元器件少,控制灵活,成本低,输出功率容易做到100W以上,具有其他专用芯片难以实现的功能。 1 UC3842芯片的特点 UC3842工作电压为16~30V,工作电流约15mA。芯片内有一个频率可设置的振荡器;一个能够源出和吸入大电流的图腾式输出结构,特别适用于MoSFET的驱动;一个固定温度补偿的基准电压和高增益误差放大器、电流传感器;具有锁存功能的逻辑电路和能提供逐个脉冲限流控制的PWM比较器,最大占空比可达100%。另外,具有内部保护功能,如滞后式欠压锁定、可控制的输出死区时间等。 由UC3842设计的DC/DC升压电路属于电流型控制,电路中直接用误差信号控制电感峰值电流,然后间接地控制PWM脉冲宽度。这种电流型控制电路的主要特点是: 1)输入电压的变化引起电感电流斜坡的变化,电感电流自动调整而不需要误差放大器输出变化,改善了瞬态电压调整率; 2)电流型控制检测电感电流和开关电流,并在逐个脉冲的基础上同误差放大器的输出比较,控制PWM脉宽,由于电感电流随误差信号的变化而变化,从而更容易设置控制环路,改善了线性调整率; 3)简化了限流电路,在保证电源工作可靠性的同时,电流限制使电感和开关管更有效地工作; 4)电流型控制电路中需要对电感电流的斜坡进行补偿,因为,平均电感电流大小是决定输出大小的因素,在占空比不同的情况下,峰值电感电流的变化不能与平均电感电流变化相对应,特别是占空比,50%的不稳定性,存在难以校正的峰值电流与平均电流的误差,即使占空比<50%,也可能发生高频次谐波振荡,因而需要斜坡补偿,使峰值电感电流与平均电感电流变化相一致,但是,同步不失真的斜坡补偿技术实现上有一定的难度。

vs2010帮助文档安装方法

Visual Studio 2010中的MSDN帮助文档较之前版本有了很大的不同,它使用了Microsoft Help Viewer。在安装Visual Studio 2010的时候会自动安装Microsoft Help Viewer。 安装完Visual Studio以后可点击Install Documentation来从磁盘安装帮助。

如果此时没有安装帮助,也可通过Visual Studio帮助菜单中的Manage Help Settings来对帮助进行设置或安装。 单击Choose online or local help可选择使用在线帮助还是本地帮助。Check for update online可对帮助进行更新。Install content from online可以在线下载并安装帮助内容,Install content from disk可以从磁盘安装帮助内容。 不少用户在装完Visual Studio 2010后没有安装帮助或以为无法安装本地帮助,也可以通过这里来安装。这和早期版本的Visual Studio的帮助有些不同。早期版本的Visual Studio 的帮助文档需要完整安装本地版本或使用在线版本,而Visual Studio 2010可以在本地安

装部分帮助文档,不一定要全部安装,而且不仅可以通过本地文件安装也可以从网上下载并安装到本地。 如果选择从磁盘安装可能会要求提供安装源位置,它位于光盘驱动器盘符:\ ProductDocumentation\HelpContentSetup.msha,单击next会出现如下界面。 安装完成Visual Studio 2010并点击Install Documentation按钮在选择帮助位置后也会出现该界面,单击Add以选择需要安装的部分,然后点击Update即可进行安装。从网络下载安装的操作与此类似。 在使用帮助时,也会与早期版本的Visual Studio有些不同,Visual Studio 2008的帮助会在Microsoft Visual Studio 2008 Documentation中打开,而Visual Studio 2010 的帮助会在浏览器中打开,这让本地帮助与在线MSDN Library有了比较类似的界面和操作方式。

高升压比交错并联Boost电路的分析

高升压比交错并联Boost电路的分析 类别:电源技术阅读:869 摘要:文章分析了传统BooST电路在实际应用中存在的问题,提出了一种改进型的交错并联Boost电路。在电感电流连续模式下,根据占空比大于或小于0。5的情况,详细分析电路的工作过程,推导了稳态情况下输出输入电压关系式,最后通过仿真验证了理论分析的正确性。0 引言升压变换器是最常用的一种变换器,随着新能源的推广,由于太阳能、燃料电池、蓄电池等输入源具有输入电压较低的特性,升压变换器成为不可或缺的关键部件。常用的非隔离Boost升压变换器,在高输出电压场合,由于寄生参数的影响不可能达到很高的输入输出电压比。而另一种升压电路是隔离升压电路,例如正激、反激电路。隔离升压电路中必须用到的变压器通常具有隔离、变压的功能,在那些不需要隔离或体积要求较小的应用场合,通过变压器升压就很难满足要求,另外变压器漏感引起的一系列问题,比如开关电压过冲,EMI等,常常对电源本身及周围设备带来安全隐患。 为了克服常用升压变换器在大功率、高输入输出变比等场合应用的限制,本文研究分析了一种新的电路拓扑结构及其工作方式,并对其进行了仿真验证。 1 工作原理下面分析Boost电路存在的不足,在理想情况下: M(D)=U0Uin= 11-D(1)根据式(1),在一定的输入电压下,理论上可以产生任意高于输入电压的输出电压。而实际情况中,由于电感、二极管、开关管都会产生一定的损耗,这些损耗可以等效为一个与电感串联的电阻RL,如图1所示: 图 1 Boost等效电路图此时根据磁平衡原理: 由式(2)、(3)可得:

根据式(4),在不同的RL/R 情况下,M(D)如图2所示。由此可见,在实际电路中,Boost电路升压比有限制极限,输出电压一般能达到输入电压的4~5倍。在大功率应用环境中,由于损耗严重,升压比反而更低。 为了克服上述非隔离升压电路的不足,本文研究的升压变换器如图3所示,它由交错并联Boost电路与电容串联组合而成。 图 2 升压比与占空比关系曲线图 图3 高升压比交错并联Boost电路结构图在电感电流连续模式下,当占空比大于0。5时,系统工作原理时序如图4所示,PS1、PS2分别为开关管S1、S2的驱动脉冲。ID1、ID2分别为流过续流二极管D1、D2的电流。

在VS2010下boost安装

vs2010下boost安装 vs2010下boost安装: 琢磨好久一直都没有安装成功,现在讲具体步骤写下来以备后续其他人之便。 下载boost 在boost官网上下载任何版本都可以https://www.doczj.com/doc/2f10909034.html,。 将boost压缩包解压到D盘目录下 (我下载的是boost_1_46_1.zip),目录为C:\BOOST_1_46_1,里面就是boost的源码和需要编译的文件及文档资料。 编译bjam (1)从vs2010的工具菜单进入命令提示窗口(单击“开始”按钮,指向“所有程序”,指向“Microsoft Visual Studio 2010”,指向“Visual Studio tools(工具)”,然后单击“Visual Studio 2010 command prompt(命令提示)”

然后进入如下界面: (2)cd到D:\boost\boost_1_46_1下执行bootstrap.bat,然后,会在D:\boost\boost_1_46_1\下生成bjam.exe 具体如下: 这样就进入boost_1_46_1下,再输入bootstrap.bat

等待一会儿即可生成bjam.exe。 编译boost库 將目录cd到D:\boost\boost_1_46_1\下执行 bjam stage--without-python--toolset=msvc-10.0--build-type=complete --stagedir="D:\boost\boost_1_46_0\bin\vc10" (这一步需要等待很长时间,大概一个小时左右……) 直到出现如下情况

Windows版bjam的安装和配置

1、下载boost(或bjam)的源码,在命令行下执行如下命令: cd \tools\jam\src .\build.bat 其中指的是boost源码的根目录。这两条命令执行完毕,会产生一个bin.ntx86文件夹,里面含有一个编译生成的bjam.exe。将bjam.exe复制到C:\WINDOWS目录(或者PATH环境变量的其它取值)下。 2、在C:\Documents and Settings\All Users目录(或其它任意目录亦可)新建一个名为boost 的目录(取bjam或其它名字亦可,后面环境变量的值与此一致即可),将 \tools\build\v2目录及其前两级父目录复制到该boost目录里,则此时在C:\Documents and Settings\All Users\boost\tools\build\v2目录里可找到一个boost-build.jam文件,打开该文件并将boost-build的值改为: boost-build “C:/Documents and Settings/All Users/boost/tools/build/v2” ; 要注意此处的路径要用斜杠来隔开,但前面执行的命令涉及到的路径则用反斜杠隔开。另外,分号与前面的文字要有空格。 3、仍然在v2文件夹下,打开user-config.jam文件,找到以下一行: # using msvc ; 将“#”去掉。 4、添加BOOST_ROOT环境变量。具体操作为:右击“我的电脑”,选择“属性”->“高级”->“环境变量”,在“系统变量”方框下方点击“新建”,出现新建系统变量对话框。变量名填上BOOST_ROOT,变量值填上“C:\Documents and Settings\All Users\boost\tools\build\v2”(此路径即boost-build.jam所在的目录,注意要用英文环境下的双引号括起来)。至此,bjam 编译环境配置完成。 5、如果步骤4的环境变量不起作用,则用户的每个工程源码根目录必须存在一个步骤2修改好的boost-build.jam,bjam程序方可正常工作。但由于bjam会从工程根目录逐级搜索至工程所在磁盘分区根目录,若在每个磁盘分区根目录都复制一份boost-build.jam,则不管用户将工程源码放在什么地方,bjam程序都能正常读取boost-build.jam,然后编译工程了。 注意:在装bjam之前,必须保证系统中已安装了Visual Studio,否则无法编译出bjam.exe。如果想删除bjam,只需手动将C:\WINDOWS\bjam.exe、boost目录(用户创建的)和相关环境变量删除即可。 已发现及解决问题: 1、Visual Studio 2010的设置问题 如果系统安装的是Visual Studio 2010,则还需要向系统环境变量添加以下路径(假设VS安装在D盘): D:\Program Files\Microsoft Visual Studio 10.0\VC\bin 否则在编译bjam或者利用bjam编译用户工程时会报错,前者会提示找不到cl等命令,后者则会提示多个jam文件运行出错。

Apache Mesos底层基础库

Apache Mesos底层基础库 Protocal Buffer是google开源的用于数据交换的库,常用于跨语言的数据访问,担任的角色一般为对象的序列化反序列化。另一个与之类似的开源软件是facebook开源的thrift,它们两个最大区别是thrift提供了自动生成RPC的功能而Protocal Buffer需要自己实现,但Protocal Buffer 的一个优势是其序列化反序列化非常高效。 AD: 1.Protocol buffer Protocal Buffer是google开源的用于数据交换的库,常用于跨语言的数据访问,担任的角色一般为对象的序列化反序列化。另一个与之类似的开源软件是facebook开源的thrift,它们两个最大区别是thrift提供了自动生成RPC的功能而Protocal Buffer需要自己实现,但Protocal Buffer 的一个优势是其序列化反序列化非常高效。 2.Libprocess libprocess是采用CC++编写的高效消息传递编程模型(基于消息传递的网络通信模型,而不是RPC),由伯克利开源。其整个实现非常简单,包括最基本的消息发送和接收等。 2.1Libprocess模型 在mesos中,主要有四个角色,分别是:mesos-master,mesos-slave,framework(HadoopSpark MPI等)scheduler,executor(在mesos-slave上执行framework task的组件),每种角色均是一个Process,在实现时会继承libprocess中的ProtobufProcess类(它又继承了Process类),这样,它们均会编成一个后台运行且不断监听protocal buffer消息的socket server,如下图所示: 2.2各种常用函数 Libprocess+protocol buffer组合是mesos最底层最重要的消息传递基础库(没有采用RPC机制),由于该库采用了基于Protocal Buffer消息传递的通信机制),因而非常高效。Mesos常用的两个头文件是libprocess\include\process下的process.hpp和protobuf.hpp,这两个提供了用于消息传递的API,其中process.hpp是最核心的文件水草玛瑙 https://www.doczj.com/doc/2f10909034.html,,提供了原始的接口,而protobuf.hpp是在process.hpp基础上,加入了ProtocalBuffer对象参数,使ProtocalBuffer使用起来更加容易。 (1) install void install(void (T::*method)(P1C),P1 (M::*param1)() const); 安装一个处理ProtocalBuffer消息的handler,其中,消息类型是M,该消息对应的处理函数是method,函数参数为M::*param1。举例:mesos中slaveslave.cpp: install( Slave::newMasterDetected, NewMasterDetectedMessage::pid); 安装一个处理NewMasterDetectedMessage(ProtocalBuffer对象)的handler,mesos slave一旦接收到该消息,便会调用newMasterDetected函数处理,且该函数的输入参数是NewMasterDetectedMessage消息中的pid属性。 voidinstall(conststd::string name,void(T::*method)(constUPID ,conststd::string )) 安装一个处理字符串的handler,也就是说,当收到字符串name后,调用函数method进行处理。这个API在mesos中的典型应用时高山茶 https://www.doczj.com/doc/2f10909034.html,维持master与slave之间的心跳,以确定彼此活着: 在slaveslave.cpp中: install( PING , Slave::ping);voidSlave::ping(constUPID from,conststring body){send(from, PONG } 在mastermaster.cpp中: install( PONG , SlaveObserver::pong);voidpong(constUPID from,conststring body){timeouts=0;pinged=false;}voidtimeout(){if(pinged){Sowehaven'tgotbackapongyet...if(++timeo uts =MAX_SLA VE_TIMEOUTS){deactivate();return;}}send(slave, PING );pinged=true;delay(SLA VE_PONG_TIMEOUT,self(), SlaveObserver::timeout);} (2) send voidsend(constprocess::UPID to,constgoogle::protobuf::Message message) 向某个UPID上发送消息,其中UPID代表一个socket,里面含有ip和port信息,而消息message

教你怎样用VS2010编写程序

第一章关于Visual Studio、VC和C++的那些事 第二章安装、配置和首次使用VS2010 本章将帮助大家安装Visual C++ 2010,帮助大家做一些常见的配置,以及第一次使用它来写HelloWord程序。 安装 Visual C++ 2010是属于Visual Studio 2010的一部分,这个在前一章中已经讲解过,实际上Visual C++ 2010也有更多的子版本,正如Windows7有旗舰版、家庭高级版、家庭初级版一样。在上一章的下载地址中有两个版本可以选择,我选择的时候旗舰版,这个功能最全面。 如果你下载完毕了,应该有一个ISO镜像文件,如果你是从我给的地址下载的,那么那个序列号已经被替换成正版序列号,直接安装即可。下面是ISO文件截图: 这就是光盘镜像文件,我们有多种方式可以安装它,你可以把它烧录成光盘,也可以用虚拟光驱软件安装它,由于这个ISO已经被修改过了,你甚至可以直接解压它,然后运行里面的setup.exe进行安装。 这里我使用虚拟光驱进行说明,首先我假设你已经安装好了虚拟光驱软件DAEMON Tools Lite,如果你还没有安装,请去游侠补丁网下载,因为在那里你总是能找到最新的免费版本。 接下来我们通过虚拟光驱加载刚才下载好的ISO镜像:

在弹出的对话框中选择我们下载好的ISO 文件。这个时候,虚拟光驱里面已经替我们打开了ISO 文件,有的机器可能会自动弹出安装提示,有的不会。如果自动弹出安装提示,那么直接通过即可,如果没有弹出,那么用资源管理器方式进入虚拟光驱点击Setup.exe 即可开始安装。

由于我已经安装好了VS2010,所以接下来无法给大家截图了,我就直接用文字描述吧。 当弹出VS2010安装程序之后点下一步,然后我们可能会看到完全最小自定义这样的选项,我推荐大家选择自定义,因为只有这样我们才可以自定我们安装的目录。接下来会选择安装的组件。这个时候我们会看到大量的VS2010的组件,这里我们可以选择是否安装Basic是否安装C#等等,我在网上找到一些图片,虽然跟中文版2010不一样,大家大概的样子是一样的,大家就凑合着看看吧。 下面是开始的界面,我们应该选择安装VS2010.

Boost编译和安装说明

Boost编译和安装说明 一、下载和安装 从官方主页https://www.doczj.com/doc/2f10909034.html,下载最新版,因为boost一部分类是需要编译成库才能使用的,所以需要准备好boost专用的编译辅助工具bjam。可直接使用boost安装包中附带的bjam源码来编译出bjam。 将boost安装包解压到E:\boost_1_53_0,运行E:\boost_1_53_0\bootstrap.bat批处理,会复制E:\boost_1_53_0\tools\build\v2\engine\ bin.ntx86\bjam.exe到目录E:\boost_1_53_0\下,注意最后bjam.exe必须与boost-build.jam在同级目录。 二、编译 打开命令提示符(cmd.exe)窗口并执行bjam,使用--help查看命令帮助。bjam的命令行参数涉及具体库的选择,会影响编译后的硬盘空间。 使用bjam命令如:bjam stage --toolset=msvc-10.0 --without-python --without-wave --without-test --stagedir="E:\boost_1_53_0_vc10" link=shared runtime-link=shared threading=multi debug release 下面详细解释一下每个参数的含义: 1)stage/install:stage表示只生成库(dll和lib),install还会生成包含头文件的 include目录。推荐使用stage,因为install生成的这个include目录实际就是boost 安装包解压缩后的boost目录(E:\boost_1_53_0\boost,只比include目录多几个非hpp的小文件),可以直接使用,而且不同的IDE都可以使用同一套头文件。 2)toolset:指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)、 msvc-10.0(VS2010)等。 3)without/with:选择不编译/编译哪些库,默认是全部编译。例如,without-python意 思是不需要编译python库。如果选择编译python的话,应该到python官方主页 https://www.doczj.com/doc/2f10909034.html,下载安装。 4)stagedir/prefix:stage时使用stagedir,install时使用prefix,表示编译生成文 件的路径。如果使用了install参数,那么还将生成头文件目录。推荐给不同的IDE 指定不同目录 5)build-dir:编译生成的中间文件的路径。默认就在根目录(E:\boost_1_53_0)下,目 录名为bin.v2,等编译完成后可具体查看一下是否生成了lib、dll文件。如果不需要可直接删除bin.v2目录 6)link:生成动态链接库/静态链接库。动态链接库使用shared方式,静态链接库使用 static方式。注意,static方式下生成的很多静态链接库大小都在几兆、几十兆。不推荐以static方式编译(without掉),巨型库黑名单:wave、graph、math、regex、test、program_options、serialization、signals。 7)runtime-link:动态/静态链接C/C++运行时库,有shared和static两种方式,与link 参数组合有4种方式。但通常一个工程用动态链接那么所有库都用动态链接,如果用静态链接那么所有库都用静态链接。所以只需要编译2种组合即可,即link=shared runtime-link=shared和link=static runtime-link=static。 8)threading:单/多线程编译。一般使用多线程程序,要指定multi方式;如果需要单线 程环境,使用single方式。

vs2010发布、打包安装程序(超全超详细)

1、在vs2010 选择“新建项目”→“其他项目类型”→“Visual Studio Installer→ “安装项目”: 命名为:Setup1 。 这是在VS2010中将有三个文件夹, 1.“应用程序文件夹”表示要安装的应用程序需要添加的文件; 2.“用户的‘程序’菜单”表示:应用程序安装完,用户的“开始菜单”中的显示 的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe; 3.“用户桌面”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。 2、应用程序文件夹中点右键添加文件:表示添加要打包的文件;

添加的文件一般是已经编译过应用程序的debug目录下的文件; 如果debug 下面有子文件夹则需要“添加文件夹”,例如:data 然后把对应的子文件里的内容添加到此文件夹中;

把需要创建程序快捷方式的图标也添加进来:后缀名为:ico 3、在创建的项目名称(Setup1)上点击右键:属性 选择系统必备:

然后选择.NET的版本,和Windows Installer3.1(可选项) 选择:“从与我应用程序相同的位置下载系统必备组件” 这样安装包就会打包.NET FrameWork ,在安装时不会从网上下载.NET FrameWork组件;但是安装包会比较大。

VS2010发布.NET2.0的版本,在创建安装程序时,需要设置启动条件:在项目名称(setup1)上,点击右键选择“视图”“启动条件”:

然后VS2010会创建如下文件: 在“启动条件”中, 点击“.NET Framework”在Version上面选择.NET Framework 2.0;

VS2010使用教程

安装、配置和首次使用VS2010 (2011-1-10 张培) 关于传说中的C语言这一回事,非计算机专业的同学可以只需要使用TC或者是VC6.0来编程,但作为计算机业内的同学我们有必要使用功能更强大,BUG 更好的编译工具,这里我教大家如何安装和使用微软公司新的编译工具Visual Stdio 2010。 这里将帮助大家安装Visual C++ 2010,帮助大家做一些常见的配置,以及第一次使用它来写HelloWord程序。 安装 Visual C++ 2010是属于Visual Studio 2010的一部分,实际上Visual C++ 2010也有更多的子版本,正如Windows7有旗舰版、家庭高级版、家庭初级版一样。如果你下载完毕了,一般情况下是一个ISO镜像文件,这里我就就拿VS2010旗舰版(大小为2.5G)为例给大家作一下讲解。 下载地址: thunder://QUFlZDJrOi8vfGZpbGV8Y25fdmlzdWFsX3N0dWRpb18yMDEwX3VsdGltYXR lX3g4Nl9kdmRfNTMyMzQ3Lmlzb3wyNjg1OTgyNzIwfDRhZTYyMjg5MzNkZGU0OWQ5YmZh NGMzNDY3YzgzMWMyfC9aWg== 这就是光盘镜像文件,我们有多种方式可以安装它,你可以把它烧录成光盘,也可以用虚拟光驱软件安装它,由于这个ISO已经被修改过了,你甚至可以直接解压它,然后运行里面的setup.exe进行安装。 方法1:这里我们就直接解压它。不解释… 方法2:或者我们通过虚拟光驱加载刚才下载好的ISO镜像:

在弹出的对话框中选择我们下载好的ISO文件。这个时候,虚拟光驱里面已经替我们打开了ISO文件,有的机器可能会自动弹出安装提示,有的不会。如果自动弹出安装提示,那么直接通过即可,如果没有弹出,那么用资源管理器方式进入虚拟光驱点击Setup.exe即可开始安装。

Boost智能指针

Boost使用笔记(Smart_ptr) 概述 Boost库是一个功能强大、构造精巧、跨平台、开源免费的C++程序库,提供了代码编写中所需要的几乎所有常见工具,例如智能指针、bind、正则表达式、xml解析等工具。其代码以泛型编程为基础,且绝大部分代码放在扩展名为hpp的头文件中,以内联的方式引入到目标程序,因此Boost库几乎无需编译即可使用。最新版的C++标准中已经将boost部分模块纳入其中,足见其功能的强大。目前Boost库是除STL库以外最常用的C++代码库之一。 在实际开发中,Boost多用于应用软件和游戏编程,由于代码量相当庞大,且内部各模块互相引用牵连,致使使用Boost中很小的功能,也要将整个Boost库全部安装,应用上相对冗余,不过由于Boost以泛型编程为基础,实际编译到目标程序中的代码量并不大,且多为Inline形式,效率上也同样不差。 Boost是跨平台的,其代码支持Win、Linux、Vxworks等平台,由于精力和时间有限没有对完整的库在Vxworks下进行验证,经过试验的库有3个: ●smart_ptr ●xpressive ●property_tree 三个库在Vxworks6.4及Vxworks6.8上都做过实验,并且在板卡上试验了Boost的兼容性及性能。在实验中smart_ptr库在Vxworks6.4及Vxworks6.8平台下均可编译执行,由于smart_ptr模块相对其他模块较为独立,现已将其从Boost库中全部抽取出来(大概218个文件)上传到Git中,可以在编码中独立使用。 https://https://www.doczj.com/doc/2f10909034.html,/guolisen/BoostSmartPtr.git 需要注意的是BoostSmartPtr由Boost 1.43.0代码而来,目前只支持shared_ptr。前面介绍过boost库代码互相牵连,即使加入一个weak_ptr也需要再加入关联的好几百个文件,因此为保证精简性没有将其加入。 xpressive 库是一个用来解析正则表达式的库,由于非常“高级”且庞大,在实验中只进行了基本的编译和使用,没有做过多的尝试。xpressive 库接口简易,功能强大,但同样由于内部牵连过多,因此没能将其抽取出来。 property_tree库已经编译通过但使用中出现崩溃的情况,没有深究崩溃的原因(有可能是编译环境的问题,非代码本身问题),XML解析使用tinyXml已经完全满足要求。 智能指针 在我们日常编码中经常使用到new关键字分配内存,被分配的内存需要在适当的时候调用delete关键字释放,否则可能造成内存泄露导致内存分配失败错误。为了避免这样的错误人们发明了智能指针,其设计思想是管理内存生命周期,使那些从堆中分配的内存在不使用时自动被释放,程序员只需要知道在哪里分配内存,而不用担心是否忘记将其释放。简单的智能指针原理请看下面代码:

vs2010发布、打包安装程序详解

这是我在网上搜到的,加以自己的理解和对一些不明白的地方做了一些更新说明。 1、在vs2010 选择“新建项目”→“其他项目类型”→“Visual Studio Installer”→ “安装项目”: 命名为:Setup1 ,选择好位置后点确定。这时在VS2010中将有三个文件夹,如图: a.“应用程序文件夹”:表示要安装的应用程序需要添加的文件; b.“用户的‘程序’菜单”:表示应用程序安装完,用户的“开始菜单”中的显示的 内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe; c.“用户桌面”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。 2、应用程序文件夹中点右键,添加文件:表示添加要打包的文件;

添加的文件一般是已经编译过应用程序的debug目录下的文件(主要为.exe文件,其他文件可选); 如果有所需要的动态库也加载进来: 如果还要添加子文件夹则需要“添加文件夹” 然后把对应的子文件里的内容添加到此文件夹中; 把需要创建程序快捷方式的图标也添加进来(在res文件夹下),后缀名为:ico

3、在创建的项目名称(Setup1)上点击右键 属性,选择系统必备:

如果在项目名称(Setup1)的“检测到的依赖项”里检测到所添加的程序文件有.NET 依赖,如图:则选择所需的.NET的版本和Windows Installer3.1(可选项),如果没有则不用选。 选择:“从与我应用程序相同的位置下载系统必备组件”,这样安装包就会打包.NET FrameWork ,在安装时不会从网上下载.NET FrameWork组件;但是安装包会比较大。 在创建安装程序时,需要设置启动条件(如果有.NET依赖):在项目名称(setup1)上,点击右键选择“视图” “启动条件”:

相关主题
文本预览
相关文档 最新文档