5

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

如何添加#warningor#error语句,以便在为调试而构建代码时发出警告,但是当我们为发布而构建代码时会引发错误?

我可以:

#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++。

4

2 回答 2

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

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

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

于 2010-11-12T19:44:06.400 回答
3

请改用#pragma 消息。

于 2010-11-12T19:21:39.840 回答