我的(C ++)代码如何判断它是否在Eclipse中编译?

时间:2010-01-20 02:43:42

标签: eclipse eclipse-cdt

背景:我在Eclipse中开发,并从Hudson调用makfile进行夜间构建。我希望某些#ifdef的值不同,具体取决于代码是在Eclipse中构建还是在makefile外部构建。

所以像#ifdef _Eclipse_之类的东西会很好。

3 个答案:

答案 0 :(得分:3)

您可以自己为在Eclipse上运行的构建定义_Eclipse_或其他内容。

答案 1 :(得分:1)

为什么要污染你的代码呢? (澄清:我的意思是编写Eclipse或Hudson特有的代码。只需选择一个更好的宏名称并在Eclipse或Hudson中定义它。)

我会制作单独的目标或以其他方式更改构建文件,以将-DECLIPSE或-DHUDSON传递给预处理器。

或传递参数make:
项目属性 - > C / C ++ Build - >构建命令:make CFLAGS+=-DECLIPSE

编辑:我无法从命令行获得+ =工作。您可能想在Makefile中尝试:

  ifeq ($(BUILT_BY), eclipse)
    CFLAGS += -D_Eclipse_
    CXXFLAGS += -D_Eclipse_
  endif

并修改eclipse的'make命令':make BUILT_BY=eclipse

答案 2 :(得分:0)

对不起,伙计们,但他的问题是由另一个人回答的......

Passing C/C++ #defines to makefile