在VS2010下boost安装

在VS2010下boost安装
在VS2010下boost安装

vs2010下boost安装

vs2010下boost安装:

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

下载boost

在boost官网上下载任何版本都可以https://www.360docs.net/doc/203126748.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_46-1\boost 设置引用文件目录:$lib-and-dll-out-dir$\lib

应用到的关键网页:

https://www.360docs.net/doc/203126748.html,/a/1979730/

https://www.360docs.net/doc/203126748.html,/flyinghare/archive/2010/10/31/126078.html

https://www.360docs.net/doc/203126748.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库支持类型安全地存储和获取任意类型的值。当你需要一个可变的类型时,有三种可能的解决方案:

了解 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 上成功编译。

visual studio 2010使用教程

visual studio 2010使用教程 在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC 和C++的区别是什么。现在有很多的朋友应该也有这些问题吧? 学C++用C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。 接下来我会做一个《Visual C++ 2010入门教程》系列,用来帮助初学者。刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的。内容主要涵盖在Windows 下面使用C++进行开发的常见内容,Visual Studio 2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍Visual C++ 2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。 由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。 注意,本教程非C++教程,不会教你C++,只会教你如何使用Visual C++ 2010去练习去学习其它C++教材上面的程序。因此建议大家认真的去看其他的C++教程,在使用Visual C++ 2010实践的时候如果遇到问题可以到这里来参考。推荐《C++ Primer》、《C++程序设计语言》《Visual C++ 2008入门经典》。 第一章关于Visual Studio、VC和C++的那些事 第二章安装、配置和首次使用VS2010 本章将帮助大家安装Visual C++ 2010,帮助大家做一些常见的配置,以及第一次使用它来写HelloWord程序。 安装 Visual C++ 2010是属于Visual Studio 2010的一部分,这个在前一章中已经讲解过,实际上Visual C++ 2010也有更多的子版本,正如Windows7有旗舰版、家庭高级版、家庭初

光伏组件安装手册

安装手册 请在使用或者安装贝达系列太阳能光伏组件之前仔细阅读本手册。该光伏组件在光照情况下会产生电流电压。请遵守所有的电器安全防范措施。只有有资质的人员才可以安装或者维修该组件产品。请不要损坏太阳能电池组件或者造成太阳能电池组件表面的刮伤。潮湿的环境会有导电的危险,请不要在组件潮湿的时候对组件做任何操作。 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.360docs.net/doc/203126748.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发布、打包安装程序超全超详细

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电路的分析

高升压比交错并联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教程

《Visual C++ 2010入门教程》 写在前面 在我还在上学的那个时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC和C++的区别是什么。现在有很多的朋友应该也有这些问题吧? 学C++用C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。 接下来我会做一个《Visual C++ 2010入门教程》系列,用来帮助初学者。刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的。内容主要涵盖在Windows下面使用C++进行开发的常见内容,Visual Studio 2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍Visual C++ 2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。 由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。 注意,本教程非C++教程,不会教你C++,只会教你如何使用 Visual C++ 2010去练习去学习其它C++教材上面的程序。因此建议大家认真的去看其他的C++教程,在使用Visual C++ 2010实践的时候如果遇到问题可以到这里来参考。推荐《C++ Primer》、《C++程序设计语言》《Visual C++ 2008入门经典》。 第一章:关于Visual Studio、VC和C++的那些事

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.360docs.net/doc/203126748.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.360docs.net/doc/203126748.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下boost安装

vs2010下boost安装 vs2010下boost安装: 琢磨好久一直都没有安装成功,现在讲具体步骤写下来以备后续其他人之便。 下载boost 在boost官网上下载任何版本都可以https://www.360docs.net/doc/203126748.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" (这一步需要等待很长时间,大概一个小时左右……) 直到出现如下情况

visual c++ 2010入门教程

在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C ++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC和C++的区别是什么。现在有很多的朋友应该也有这些问题吧? 学C++用C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。 接下来我会做一个《Visual C++ 2010入门教程》系列,用来帮助初学者。刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的。内容主要涵盖在Windows下面使用C++进行开发的常见内容,Visual Studio 2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍Visual C++ 2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。 由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。 注意,本教程非C++教程,不会教你C++,只会教你如何使用Visual C++ 2010去练习去学习其它C++教材上面的程序。因此建议大家认真的去看其他的C++教程,在使用Visual C++ 2010实践的时候如果遇到问题可以到这里来参考。推荐《C++ Prim er》、《C++程序设计语言》《Visual C++ 2008入门经典》。 第一章关于Visual Studio、VC和C++的那些事 第二章安装、配置和首次使用VS2010 本章将帮助大家安装Visual C++ 2010,帮助大家做一些常见的配置,以及第一次使用它来写HelloWord程序。 安装

Boost编译和安装说明

Boost编译和安装说明 一、下载和安装 从官方主页https://www.360docs.net/doc/203126748.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.360docs.net/doc/203126748.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 C++编程教程

第一章:关于Visual Studio、VC和C++的那些事 首先,这三个东西有什么区别呢?VC和C++是相同的吗,有什么区别呢?我刚开始学C++的时候也有这样的问题,在这里我来替大家解释一下他们到底是什么。 Visual Studio,我们一般都简称为VS,VC全称是Visual C++,C++就 不用解释了吧?Visual Studio其实是微软开发的一套工具集,它由各种各样的工具组成,这就好像Office 2007是由Word 2007、Excel 2007、Access 2007 等等组成的一个道理。其中Visual C++就是Visual Studio的一个重要的组成 部分。Visual Studio可以用于生成Web应用程序,也可以生成桌面应用程序,在Visual Studio下面,除了VC,还有Visual C#,Visual Basic,过去还有Visual J#,现在还有Visual F#等等组件工具,使用这些工具你可以使用C++ 语言、C#语言或者Basic语言(微软改进版)进行开发。这就好比桌上放着刀、叉、筷子,你可以用它们来吃饭,无论你用什么工具都可以,因为它们都是餐具的一种。 VC,全称是Visual C++,它只是一个工具而已。 C++是一门和C、Basic、C#、Java一个概念的东西,它是一门语言,这个概念就同汉语、英语、法语之间的关系一样。语言的可以不同,他们有的复杂有的精简,比如汉语,我个人认为这是这个星球上最复杂的语言;又比如电影《阿凡达》中外星人使用的语言,不过100都个单词而已。当然,语言并没有高低贵贱之分,而对语言掌握的好不好,说的好不好是有高下之别的。 一个语言都有哪些要素呢?语法就是其中一个重要的方面,比如你要对你所喜欢的人表达爱慕之情,那么你应该说“我爱你”,你不能说“你爱我”,因为这搞错了主谓宾关系,因此我们通常都需要按照一定的规矩和原则表达才会让别人正确理解我们真正的含义。在我们的汉语中有一些成语,它们通常都比较简单短小,但是却能表达非常强烈的感情,而且效果非常好。比如你想骂一个坏人“你实在是太变态了,这种事情都干得出来。”你可以这样说:“你也太禽兽不如了!”对于编程的语言来说,其实也是有成语的,在我看来,这就是库函数。通常我们在编程的时候都推荐选择库函数,因为它通常会比较快一些。 一直以来都有不少人混淆Visual C++和Visual Studio,其实最初Visual C++发布的时候还没有Visual Studio这个东西,Visual C++是一个独立的开发工具,与Visual Basic等并列,最后微软将它们整合在一起组成了Visual Studio。 Visual C++从发布起到现在已经有10个大版本了,我们这里介绍的Visual C++ 2010就是Visual C++ 10,简称VC10。上朔10多年,Visual C++ 6.0发布了,这个被称为史上最经典的VC,现在有很多企业还在用它,大量的教材 基于这个版本的VC来写的。然而实际上VC6并没有想象中的那么美好,孱弱的IDE,不完善的STL等等让它越来越不适应时代的发展,同时由于后来的版本和它的差别越来越大,让很多习惯于VC6教材的人在新版本上无所适从。 VC6走

相关文档
最新文档