项目建设有没有助推
project building with and without boost
我有一个项目可以使用boost库,也可以不使用它。我有一个属性表use_boost
,可以添加到项目中,并设置了要提升的路径和一个值为I_AM_USING_BOOST
的<PreprocessorDefinitions>
标记。
在代码中,我有这样的东西:
#ifdef I_AM_USING_BOOST
#include <boost/any.hpp>
#else
#include <string>
#endif
namespace test
{
#ifdef I_AM_USING_BOOST
using my_defined_type = boost::any;
#else
using my_defined_type = std::string;
#endif
}
因此,如果我不想使用boost构建,我会删除属性表。如果我想使用boost进行构建,我会将属性表添加到项目中。
现在,我想构建库的两个变体:一个使用boost,另一个不使用boost。
我可以有一个具有两个不同构建的项目吗?一个有boost,一个没有boost,但不能手动添加或删除属性表?
我使用msbuild从批处理文件中生成。
作为我的解决方案,我添加了一个新的项目配置(Release_no_boost),在该配置中,我使用boost库删除了属性表。
因此,在批处理文件中,我现在可以通过调用不同的配置来为这两种变体运行msbuild。我现在在批处理文件中:
msbuild /t:rebuild /p:Configuration=Release D:projectssome_testtest_1test_1.vcxproj
msbuild /t:rebuild /p:Configuration=Release_no_boost D:projectssome_testtest_1test_1.vcxproj
这也可以用于具有多个项目的解决方案,但需要创建一个解决方案配置,并且对于正在构建的解决方案中的每个项目,都会设置所需的项目配置。
批处理的区别在于,它不是项目文件,而是作为参数给出的解决方案文件:
msbuild /t:rebuild /p:Configuration=Release D:projectssome_testsome_test.sln
msbuild /t:rebuild /p:Configuration=Release_no_boost D:projectssome_testsome_test.sln
相关文章:
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 遇到新行时,有没有办法停止istream_iterator
- 有没有一种方法可以在编译时获得作用域类名
- 有没有办法使用输入的维度初始化 2d 数组中的所有项目而不循环C++?
- 有没有办法缩短这个项目
- 有没有一种简单的方法可以在C++中获取特定索引之后向量中的所有项目?
- 有没有更好的方法来检测向量中一个项目的多次出现?
- 有没有像NPM这样的C++项目经理
- 有没有办法在整个项目中包含和链接外部库,只编辑我的顶级 CMakeList
- 有没有办法将文件包含在C++中的所有项目文件中
- 有没有办法设置 Eclipse 以使用另一个项目的输出作为库?
- 项目建设有没有助推
- 有没有一种简单的方法可以将多个资源添加到 Win32/C++ 项目
- 有没有一种方法可以在不重建任何项目的情况下重新链接解决方案
- 有没有QPair类,但针对三个+项目而不是两个
- 有没有办法在同一项目中的另一个.cpp中使用.cpp中声明的静态空隙
- 有没有办法在Visual Studio Express '12项目中编译和运行单个.cpp文件?