在家工作的条件汇编

时间:2008-09-23 04:21:40

标签: c++

我使用MS Dev Studio编写C ++,我每周工作两天。我使用CVS使我的源在两台计算机之间保持同步,但机器所处的环境存在差异。

任何人都可以建议我可以有条件地修改代码中的常量,具体取决于我是否在我的主页上编译?

我所追求的是一种定义符号的方法,让我们自动称它为_ATHOME,所以我可以这样做:

#ifdef _ATHOME
#  define TEST_FILES  "E:\\Test"
#  define TEST_SERVER "192.168.0.1"
#else
#  define TEST_FILE   "Z:\\Project\\Blah\\Test"
#  define TEST_SERVER "212.45.68.43"
#endif

注意:这当然是出于开发和调试的目的,我绝不会发布像这样的硬编码常量的软件。

4 个答案:

答案 0 :(得分:6)

在您的家庭和工作机器上,设置一个环境变量LOCATION,对于家庭来说是“1”,对于工作来说是“2”。

然后在预处理器选项中添加预处理器define / DLOCATION = $(LOCATION)。这将评估您在环境变量中设置的“home”或“work”字符串。

然后在你的代码中:

#if LOCATION==1
  // home
#else
  // work
#endif

答案 1 :(得分:3)

如果工作和家庭之间的唯一区别是测试文件所在的位置...那么(恕我直言)你不应该用一堆静态路径污染你的构建文件&的IP。

对于您展示的示例,我只想在工作和家庭上映射驱动器。即在工作地图上一个驱动器T:指向\\ 212.45.68.43 \ Project \ Blah \ Test,在主地图上一个驱动器T:指向\\ 192.168.0.1 \ Test。

然后,您的构建过程使用路径“T:\”来引用测试所在的位置。

当然,如果你需要更改一些更激烈的东西,设置环境变量可能是最好的方法。

答案 2 :(得分:2)

您可以在properties-> c ++ - >预处理器中设置preproccesor变量 在visual studio设置中,您可以使用$(enviromentvariable)

答案 3 :(得分:1)

我通常使用配置文件,然后只需创建适当配置的符号链接。