是否可以在C ++中仅在用户设置makefile中的标志时调用函数?

时间:2014-03-28 13:46:31

标签: c++ macros makefile

我正在开发一个C ++项目。我想知道在编译期间是否有任何机制可以指定(makefile项目),我不想调用某些函数?这些功能是特殊功能,它取决于用户是否应该执行。

非常感谢您的任何帮助/建议

2 个答案:

答案 0 :(得分:4)

使用preprocessor。您寻求的功能称为"条件编译"。

示例:

#ifdef MY_ENABLE_TESTING
testingFoo();
#endif
normalFoo();

现在只有在使用testingFoo()编译程序时才会执行-DMY_ENABLE_TESTING

答案 1 :(得分:0)

是的,你可以在makefile和C ++代码中定义一些东西

#ifdef something
// do the function call here
#endif

可以在谷歌上找到更多细节 http://gcc.gnu.org/onlinedocs/cpp/Ifdef.html