5

私は商用アプリを構築しており、GPLコードを使用して支援しています。

コードをデバッグ用にビルドすると警告が表示されるように、#warningまたはステートメントを追加するにはどうすればよいですか?リリース用にビルドするとエラーがスローされますか?#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の目的(assertの制御)はわずかに異なり、#undefであり、選択的に再定義される可能性があるため(assert.hを含めて変更を有効にする)、おそらく正しいシンボルではありません。ただし、これは標準のマクロであり、使用できます。

#errorは標準ですが、#warningは拡張機能であることに注意してください。

于 2010-11-12T19:44:06.400 に答える
3

代わりに#pragmaメッセージを使用してください。

于 2010-11-12T19:21:39.840 に答える