我使用 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/