c++ - 在家工作的条件编译

标签 c++

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

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

我所追求的是一种定义符号的方法,我们称它为_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

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

最佳答案

在您的家庭和工作机器上,设置一个环境变量 LOCATION,“1”代表家庭,“2”代表工作。

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

然后在你的代码中:

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

关于c++ - 在家工作的条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/119114/

相关文章:

c++ - 我需要知道如何在 C++ 中使用增量值增加到一定数量

c++ - 确定圆弧中点的算法

c++ - std::cout、ostream等获取输出流

c++ - 海湾合作委员会 4.1.2 : error: integer constant is too large for ‘long’ type

c++ - 使用 boost 创建 6 位 crc

c++ - 如何在 openni 和 opencv 中使用 Kinect

c++ - 使用访问者模式检查派生类类型?

c++ - win32 GDI C++ 中垂直文本不会加粗

c++ - 如何使用Alternative Parser将输入分解为不同部分的序列时保持空格字符?

char类型的C++ for循环