3

独自のモジュールを誤ってカーネルに静的にリンクしないようにしたいと思います。MODULE_LICENSE("Proprietary")MODULEが定義されていない場合、コンパイル時に失敗することを考えていました。(またはさらに良いことに、MODULE_LICENSE("GPL")定義されていない場合は失敗します...)。

しかし、マクロ内の文字列を比較するための良い方法を見つけることができません-誰かがこれに対する良い解決策を持っていますか?

4

1 に答える 1

2

私はあなたがこれを行うことができるとは思わない.

通常は、プリプロセッサ シンボルを定義し、それらの (整数) 値を比較します。

#define LICENSE_PROPRIETARY 1
#define LICENSE_GPL         2
#define LICENSE_MIT         3

#define MODULE_LICENSE      LICENSE_GPL

#if MODULE_LICENSE != LICENSE_GPL
#error "Not GPL, fail fail"
#endif
于 2012-05-25T14:59:41.147 に答える