背景:我在Eclipse中开发,并从Hudson调用makfile进行夜间构建。我希望某些#ifdef
的值不同,具体取决于代码是在Eclipse中构建还是在makefile外部构建。
所以像#ifdef _Eclipse_
之类的东西会很好。
答案 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)
对不起,伙计们,但他的问题是由另一个人回答的......