创建自定义#warning标志

时间:2010-11-12 19:17:47

标签: c++ objective-c gcc warnings pragma

我正在构建一个商业应用,我们正在使用一些GPL代码来帮助我们。

如何添加#warning#error语句,以便在为调试构建代码时,它会发出警告,但是当我们构建for release时会抛出错误?

我能做到:

#warning this code is released under a CCL licensing scheme, see Source_Code_License.rtf
#warning this code is not LGPL-compliant
#warning this code was copied verbatim from a GP Licensed file

在文件的开头,但我可以做得更好吗?如果包含文件,是否有更好的标记方式?

我正在使用带有gcc或clang的Objective-C ++。

2 个答案:

答案 0 :(得分:5)

#ifdef SOME_SYMBOL
#error "foobar"
#else
#warning "foobar"
#endif

NDEBUG的目的略有不同(控制断言),可能是#undef并有选择地重新定义(重新包含assert.h以实现更改),因此它可能不是正确的符号。但它是一个标准宏,可以使用。

请注意,#error是标准的,但#warning是扩展程序。

答案 1 :(得分:2)

请改用#pragma message。