关于如何在Visual Studio 2010中的空项目中使用Boost库,一步一步的解释是什么?
boost :: bind返回一个函数对象,它是需要指针的函数的参数
卸载boost并安装另一个版本
使用boost文件系统parsing符号链接
旧的海湾合作委员会版本提升
“编译器线程支持未打开”。
虽然Nate的答案已经相当不错了,但是我会根据要求更加专门针对Visual Studio 2010进行扩展,并在各种可选组件中包含需要外部库的信息。
如果您只使用头文件库,那么您只需要解压缩下载并设置环境变量即可。 下面的指令只为Visual Studio设置环境变量,而不是整个系统。 注意你只需要做一次。
将最新版本的boost(1.47.0)写入您选择的目录(例如C:boost_1_47_0 )。
在Visual Studio中创建一个新的空项目。
打开Property Manager并展开您选择的平台的配置之一。
选择并右键单击Microsoft.Cpp.<Platform>.user ,然后选择“ PropertIEs以打开属性页进行编辑。
选择左侧的VC++ DirectorIEs 。
编辑“ Include DirectorIEs部分以包含升压源文件的路径。
重复步骤3 – 6,根据需要选择不同的平台。
如果你想使用boost需要构建的部分,但是没有一个需要外部依赖的特性,那么构建它就相当简单。
将最新版本的boost(1.47.0)写入您选择的目录(例如C:boost_1_47_0 )。
启动您选择的平台的Visual Studio命令提示符并导航到提升的位置。
运行: bootstrap.bat生成b2.exe(以前称为bjam)。
运行b2:
Win32: b2 --toolset=msvc-10.0 --build-type=complete stage ;
x64: b2 --toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=64 stage
去散步/看电影或2 / ….
通过上述指令集中的步骤2 – 6来设置环境变量。
编辑library DirectorIEs部分以包含boost库输出的路径。 (上述示例和说明的默认设置是C:boost_1_47_0stagelib 。如果您希望并行安装x86和x64(例如<BOOST_PATH>libx86 & <BOOST_PATH>libx64 )。
重复步骤2 – 6,根据需要选择不同的平台。
如果你想要可选的组件,那么你有更多的工作要做。 这些是:
Boost.IOStreams Bzip2过滤器
Boost.IOStreams Zlib过滤器
Boost.MPI
Boost.Python的
Boost.Regex ICU支持
Boost.Iostreams Bzip2过滤器:
将最新版本的bzip2库(编写时为1.0.6)源文件解压缩到您选择的目录(例如C:bzip2-1.0.6 )。
按照上面的第二组指令来构建boost,但在步骤5中运行b2时添加选项-sBZIP2_SOURCE="C:bzip2-1.0.6" 。
Boost.IOStreams Zlib过滤器
将最新版本的zlib库(1.2.5编写)源文件解压到您选择的目录(例如C:zlib-1.2.5 )。
按照上面的第二组指令来构建boost,但在步骤5中运行b2时添加选项-sZliB_SOURCE="C:zlib-1.2.5" 。
Boost.MPI
安装一个MPI发行版,例如Microsoft Compute Cluster Pack。
按照上面第二组指令中的步骤1 – 3建立提升。
编辑运行引导程序导致的<BOOST_PATH>目录中的文件project-config.jam 。 添加一行, using mpi ;读取using mpi ; (注意';'之前的空格)。
按照上面第二组指令的其余步骤构建提升。 如果MPI安装的自动检测失败,则需要查找并修改相应的构建文件以在正确的位置查找MPI。
Boost.Python的
安装一个Python发行版,比如ActiveState的ActivePython。 确保Python安装位于PATH中。
要完全构建库的32位版本,需要32位Python,对于64位版本也是如此。 如果因为这个原因安装了多个版本,则需要告诉b2在哪里可以找到特定版本以及何时使用哪个版本。 一种方法是编辑运行引导程序导致的<BOOST_PATH>目录中的文件project-config.jam 。 添加以下两行,根据您的Python安装路径和版本进行调整(注意“;”之前的空格)。
using python : 2.6 : C:\Python\Python26\python ;
using python : 2.6 : C:\Python\Python26-x64\python : : : <address-model>64 ;
请注意,这样的显式Python规范目前会导致MPI构建失败。 所以如果你正在构建MPI,那么你需要做一些独立的构建,不管规范如何构建。
按照上面的第二组指令来建立提升。
Boost.Regex ICU支持
将最新版本的ICU4C库(写入时为4.8)源文件解压到您选择的目录(例如C:icu4c-4_8 )。
在<ICU_PATH>sourceallinone打开Visual Studio解决方案。
为您所选择的平台进行调试和发布配置。 当deBUG&release版本的输出位于同一目录(这是默认行为)时,用Visual Studio 2010构建ICU4C的最新版本可能会出现问题 。 一个可能的解决方法是做一个全部构建(调试构建说),然后在第二个配置(例如发布版本)中重建所有。
如果要为x64构建,则需要运行x64 *** 作系统,因为有构建步骤需要运行一些正在构建的64位应用程序。
完成后,可以选择删除源目录。
按照上面的第二组指令来构建boost,但是在步骤5中运行b2时添加选项-sICU_PATH="C:icu4c-4_8" 。
虽然Boost网站上的说明很有帮助,但下面是一个精简版本,它也构建了x64库。
如果您使用说明页面第3节中提到的库之一,则只需执行此 *** 作。 (例如,要使用Boost.filesystem需要编译。)如果您没有使用这些,只需解压缩即可。
构建32位库
这将在C:Boostincludeboost-(version)下安装Boost头文件,并在C:Boostlibi386下安装32位库。 请注意,库的默认位置是C:Boostlib但如果您计划为多个体系结构构建,则需要将它们放在i386目录下。
将Boost解压缩到一个新的目录中。
启动一个32位MSVC命令提示符并切换到Boost解压缩的目录。
运行: bootstrap
运行: b2 toolset=msvc-12.0 --build-type=complete --libdir=C:Boostlibi386 install
对于Visual Studio 2012,请使用toolset=msvc-11.0
对于Visual Studio 2010,请使用toolset=msvc-10.0
将C:Boostincludeboost-(version)到包含路径中。
将C:Boostlibi386到您的libs路径。
构建64位库
这将在C:Boostincludeboost-(version)下安装Boost头文件,并在C:Boostlibx64下安装64位库。 请注意,库的默认位置是C:Boostlib但如果您计划为多个体系结构构建,则需要将它们放在x64目录下。
将Boost解压缩到一个新的目录中。
启动一个64位MSVC命令提示符并切换到解压缩Boost的目录。
运行: bootstrap
运行: b2 toolset=msvc-12.0 --build-type=complete --libdir=C:Boostlibx64 architecture=x86 address-model=64 install
对于Visual Studio 2012,请使用toolset=msvc-11.0
对于Visual Studio 2010,请使用toolset=msvc-10.0
将C:Boostincludeboost-(version)到包含路径中。
将C:Boostlibx64到您的libs路径中。
您也可以尝试使用-j%NUMBER_OF_PROCESSORS%作为它将使用所有内核的参数。 使我的四核心超快速。
我可以推荐以下技巧:创建一个特殊的boost.props文件
打开物业经理
右键单击您的项目节点,然后选择“添加新的项目属性表”。
选择一个位置并命名你的属性表(例如c: mystuff boost.props)
将其他Include和lib文件夹修改为搜索路径。
这个过程的价值在于,只有在你想明确包含它的项目中才会包含boost。 当你有一个新的项目使用提升,做:
打开物业经理。
右键单击项目节点,然后选择“添加现有属性表”。
选择提升属性表。
编辑(从@ jim-fred编辑):
由此产生的boost.props文件看起来像这样…
<?xml version="1.0" enCoding="utf-8"?> <Project Toolsversion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <importGroup Label="propertysheets" /> <PropertyGroup Label="UserMacros"> <BOOST_DIR>D:boost_1_53_0</BOOST_DIR> </PropertyGroup> <PropertyGroup> <IncludePath>$(BOOST_DIR);$(IncludePath)</IncludePath> <libraryPath>$(BOOST_DIR)stagelib;$(libraryPath)</libraryPath> </PropertyGroup> </Project>
它包含用于boost目录位置的用户宏(在本例中为D: boost_1_53_0)和另外两个参数:IncludePath和libraryPath。 语句#include <boost/thread.hpp>会在相应的目录(在这种情况下,D: boost_1_53_0 boost thread.hpp)中找到thread.hpp。 “stage lib ”目录可能会根据安装的目录而改变。
boost.props文件可以位于D:boost_1_53_0目录下。
你需要什么Boost的部分? 很多东西都是Visual Studio附带的TR1的一部分,所以你可以简单地说,例如:
#include <tr1/memory> using std::tr1::shared_ptr;
根据詹姆斯,这也应该工作(在C + + 0x):
#include <memory> using std::shared_ptr;
还有一点点:如果你想减少编译时间,你可以添加标志
-j2
同时运行两个并行版本。 这可能会减少它观看一部电影;)
这个线程已经有一段时间了,我想我会添加一些关于如何在您的特定硬件上尽快构建Boost。
如果你有一个4或6核心分别使用-j5或-j7。 当然不是标准的构建,也不是-j2,除非你确实有双核。
我正在运行Sandy BrIDge Extreme,在我的主站上有3930K(6核)的主频,但在老的备份盒上有2600K(4核),而且我的趋势是我可以用N + 1构建进程,其中N是物理内核的数量。 N + 2达到收益递减点,时间上升。
备注:启用超线程,32GB内存DDR3,三星840 EVO SSD。
-j7 6核(2分51秒)(Win7 ultimate x64)(Visual Studio 2013)
PS C:Boostboost_1_56_0> measure-command { .b2 -j7 --build-type=complete msvc stage } Days : 0 Hours : 0 Minutes : 2 Seconds : 51 Milliseconds : 128 Ticks : 1711281830 TotalDays : 0.0019806502662037 TotalHours : 0.0475356063888889 TotalMinutes : 2.85213638333333 TotalSeconds : 171.128183 TotalMilliseconds : 171128.183
6核心(3分钟和2秒)(Win7旗舰版x64)(Visual Studio 2013)
PS C:Boostboost_1_56_0> measure-command { .b2 -j6 --build-type=complete msvc stage } Days : 0 Hours : 0 Minutes : 3 Seconds : 2 Milliseconds : 809 Ticks : 1828093904 TotalDays : 0.00211584942592593 TotalHours : 0.0507803862222222 TotalMinutes : 3.04682317333333 TotalSeconds : 182.8093904 TotalMilliseconds : 182809.3904
-j8 6核(3分17秒)(Win7 ultimate x64)(Visual Studio 2013)
PS C:Boostboost_1_56_0> measure-command { .b2 -j8 --build-type=complete msvc stage } Days : 0 Hours : 0 Minutes : 3 Seconds : 17 Milliseconds : 652 Ticks : 1976523915 TotalDays : 0.00228764342013889 TotalHours : 0.0549034420833333 TotalMinutes : 3.294206525 TotalSeconds : 197.6523915 TotalMilliseconds : 197652.3915
配置
Building the Boost C++ librarIEs. Performing configuration checks - 32-bit : yes (cached) - arm : no (cached) - mips1 : no (cached) - power : no (cached) - sparc : no (cached) - x86 : yes (cached) - has_icu builds : no (cached) warning: Graph library does not contain MPI-based parallel components. note: to enable them,add "using mpi ;" to your user-config.jam - zlib : no (cached) - iconv (libc) : no (cached) - iconv (separate) : no (cached) - icu : no (cached) - icu (lib64) : no (cached) - message-compiler : yes (cached) - compiler-supports-ssse3 : yes (cached) - compiler-supports-avx2 : yes (cached) - gcc visibility : no (cached) - long double support : yes (cached) warning: skipPing optional Message Passing Interface (MPI) library. note: to enable MPI support,add "using mpi ;" to user-config.jam. note: to suppress this message,pass "--without-mpi" to bjam. note: otherwise,you can safely ignore this message. - zlib : no (cached)
我注意到64位版本需要更长的时间,我需要做相同的比较和更新。
以下是我如何使用Boost:
下载并提取Boost库的zip版本。
运行bootstrap.bat文件,然后运行bjam.exe。
等待大约30分钟左右。
在Visual Studio中创建一个新项目。
转到项目 – >属性 – >链接器 – >常规 – >其他库目录,并添加boost / stage / lib目录。
转到项目 – >属性 – > C / C ++ – >常规 – >其他包含目录,并添加boost目录。
你将能够建立你的项目没有任何错误!
从http://www.boost.org/users/download/下载,例如通过svn
windows – >乌龟(最简单的方法)
之后:cmd – >进入boost目录(“D: boostTrunk” – 在这里你签出或下载并解压包):command: bootstrap
我们在(“D: boostTrunk”)中创建了bjam.exe之后:命令: bjam toolset = msvc-10.0 variant = deBUG,释放线程=多链接=静态 (需要一些时间~20分钟)
之后:打开Visual Studio 2010 – >创建空项目 – >去项目属性 – >设置:
粘贴这个代码并检查它是否工作?
#include <iostream> #include <boost/shared_ptr.hpp> #include <boost/regex.hpp> using namespace std; struct Hello { Hello(){ cout << "Hello constructor" << endl; } ~Hello(){ cout << "Hello destructor" << endl; cin.get(); } }; int main(int argc,char**argv) { //Boost regex,compiled library boost::regex regex("^(Hello|Bye) Boost$"); boost::cmatch helloMatches; boost::regex_search("Hello Boost",helloMatches,regex); cout << "The word between () is: " << helloMatches[1] << endl; //Boost shared pointer,header only library boost::shared_ptr<Hello> sharedHello(new Hello); return 0; }
资源: https : //www.youtube.com/watch?v = 5AmwIwedTCM
位于这里的windows安装程序对我来说是完美的。 我采取了以下步骤:
按照安装向导完成。
运行视觉工作室。
创建一个新的C ++项目
打开项目属性(可以通过在解决方案资源管理器中右键单击项目名称来找到)
在“C / C ++> General> Additional Include DirectorIEs”下添加boost根目录的路径。 我的版本的默认值是C: local boost_1_63_0。 “提升”之后的数字是提升的版本。
在项目属性中的“链接器>其他库目录”下添加库文件的目录。 我的版本的默认值是C: local boost_1_63_0 lib64-msvc-14.0。 “lib”之后的数字与构建目标(Visual Studio中的32位或64位)相关,“msvc”之后的数字与Visual Studio的版本相关(14.0与Visual Studio 2015相关,但是我使用它与2017年的Visual Studio)。
祝你好运!
KTC非常丰富的主要答案的一小部分:
如果您正在使用免费的Visual Studio c ++ 2010 Express,并设法让它编译64位二进制文件,现在想要使用它来使用64位版本的Boost库文件,位库(你的里程可能会有所不同,但在我的机器上这是悲伤的情况)。
我可以解决这个问题,使用以下内容:介于上述步骤之间
启动一个32位MSVC命令提示符并切换到Boost解压缩的目录。
运行:bootstrap
我插入了一个调用'setenv'来设置环境。 对于发布版本,上面的步骤变成:
启动一个32位MSVC命令提示符并切换到Boost解压缩的目录。
运行:“C: Program files Microsoft SDKs windows v7.1 Bin setenv.cmd”/ Release / x64
运行:bootstrap
我在这里找到了这个信息: http : //boost.2283326.n4.nabble.com/64-bit-with-VS-Express-again-td3044258.HTML
一个简单的例子,让你在Visual Studio中开始:
1.从这里下载并解压缩Boost。
创建一个Visual Studio空项目,使用一个不需要单独编译的示例boost库:
#include <iostream> #include <boost/format.hpp> using namespace std; using namespace boost; int main() { unsigned int arr[5] = { 0x05,0x04,0xAA,0x0F,0x0D }; cout << format("%02X-%02X-%02X-%02X-%02X") % arr[0] % arr[1] % arr[2] % arr[3] % arr[4] << endl; }
3.在您的Visual Studio项目属性中设置其他包含目录:
举一个非常简单的例子:
如何在Visual Studio中安装Boost库
如果你不想使用整个boost库,只是一个子集:
在windows中使用boost库的一个子集
如果您现在特别想要了解需要编译的库:
如何在windows中使用Boost编译的库
另外,还有一些我觉得非常有用的东西。 为升压路径使用环境变量。 (如何在windows中设置环境变量,底部为7,8,10链接) BOOST_ROOT变量似乎已经是常见的地方,并设置为解压缩的根路径。
然后在PropertIEs中,c ++,general,Additional Include DirectorIEs使用$(BOOST_ROOT) 。 然后如果/当你移动到更新版本的boost库,你可以更新你的环境变量来指向这个更新的版本。 随着更多的项目,使用boost,你将不必更新所有的“其他包含目录”。
您也可以创建一个BOOST_liB变量并将其指向该库的位置。 因此,对于链接器 – >其他库目录,您不必更新项目。 我用vs10构建了一些旧东西,用vs14构建了新东西,因此将boost lib的两个版本都构建到同一个文件夹中。 所以如果我把一个项目从vs10移到vs14,我不需要改变boost路径。
注意:如果你改变一个环境变量,它不会突然在一个打开的VS项目中工作。 VS在启动时加载变量。 所以你将不得不关闭VS并重新打开它。
总结以上是内存溢出为你收集整理的如何在Visual Studio 2010中使用Boost全部内容,希望文章能够帮你解决如何在Visual Studio 2010中使用Boost所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)