引言Boost 是一个非常流行地开源C++库。最近作为构建的一部分,我已经把它集成在Visual Studio中。仅仅使用Makefile项目和Command Line工具,要想完全正确地配置构建项目还是很困难的。Boost也一直指引着我发现所有相关的知识以及学习如何使用它。这些是分散在多个地方的文档(这里, 这里, 以及 这里),但是并不是那么浅显易懂。我目前所写的文档就是为了不让其他人浪费很长时间在同样的问题上。 这是有关主题的第三章。在前面两章中,我已经讲了了它的属性和它的语法.。你可以在这里和这里阅读。在第四章中,我会解释如何用Visual Studio项目参考系统进行整合,目的是为了Boost也可以像其它的MSBuild 项目那样被人使用。 目的本章的目的是演示如何使用MSBuild为自定义库和工具创建项目以及整合MSBuild到Visual Studio的配置环境当中。接下来的方面是很重要的。这些工具和库建构起来又是异常复杂。我给你们举个例子: 我们想在最小化的配置下构建Boost,把这些中间文件放到:"c:\Temp\"这个目录并存储这些文件。命令很简单
执行命令的时失败并伴有如下错误:
#$%#什么?!!我们检查命令、拼写等。再试一次…一次又一次…又一次完整的而不是最小的。……仍不行! 失败的原因是--stagedir在路径的结尾有“\”字符!像“C:Temp”这样执行才能成功地构建出库。
Visual Studio在发送工具时需要带有斜线的目录来控制,在这种情况下不会正常工作。 因此开发环境的整合并且提供简单的UI能够消除所有的这些应该被消除的无意义的问题。 背景Boost是一个C++编程语言的库集合。它的大多数库被作为头文件的实现并且不用被编译成二进制文件。包含这些特定的头文件,把他们放入你的工程中,对你的工程来说足够了。但是这些模块需要编译和连接到这些程序才能使之成为一个整体。 Boost使用它自己的Jam build tool作为库编译工具。工具是C++源代码文件的集合,那么任何模块被处理前都是需要编译的。 获得库文件Boost库可以通过正式的发布来下载也可从GitHub上面复制或分支出一份。 所下载的库作为库的存档中被正式发布的一部分,包含了全部的资源、文档和目录,而且可以立即构建。 如何库是在Git上面复制的,在构建的时候可能需要更多的步骤。Boost是结构化的主模块,并且带有一些子模块。
只要下载或是复制了库文件,我们就可以开始构建了,最好是设置指向boot库根目录的环境变量BOOST_BUILD_PATH。 项目文件在MSBuild中的所有项目都是一起启动的,它总是像这样启动:
有一些推荐的(但非必须的)配置项, 项目配置(ProjectConfiguration),全局配置(Global),拓展设置(ExtensionSetting), 用户宏(UserMacros),以及拓展目标(ExtensionTarget)。关于这个部分的更多信息,请查看这个博客. 项目配置项目配置(ProjectConfiguration)是Visual Studio配置管理器存储可用平台(Platform)或配置(Configuration)的选项组(ItemGroup)。这个部分由Visual Studio配置管理器创建和维护:
全局配置你可能已经猜到它存储整个项目的全局设置。这个部分由模板或者人工创建,Visula Studio并不直接修改。它通常包含以下的元素:
需要重点指出的是,元素ProjectGuid在整个解决方案的所有项目中,必须是唯一的GUID。 我们将增加BoostDir变量,指向由BOOST_BUILD_PATH环境变量设置的路径。 |