我正在构建一个商业应用,我们正在使用一些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 ++。
答案 0 :(得分:5)
#ifdef SOME_SYMBOL
#error "foobar"
#else
#warning "foobar"
#endif
NDEBUG的目的略有不同(控制断言),可能是#undef并有选择地重新定义(重新包含assert.h以实现更改),因此它可能不是正确的符号。但它是一个标准宏,可以使用。
请注意,#error是标准的,但#warning是扩展程序。
答案 1 :(得分:2)
请改用#pragma message。