8

私は-std=c99、アプリケーション コードをコンパイルするときに c99 機能を有効にするために使用することに慣れています。

最近、いくつかの基本的なカーネル モジュールの例に従ってccflags-y := -std=c99、makefile に追加しました。ただし、これを作成しようとすると、17K 行のエラーが発生しました。gnu99完璧に動作します。

カーネルコードが依存している gnu99 と c99 の違いは何ですか?

4

1 に答える 1

1

Linux カーネルは多くの GCC 拡張機能を使用しています。つまり、カーネルで使用されている C 言語は標準に準拠しておらず、GCC 拡張機能を含むスーパーセットです。したがって、GNU99 は渡す必要があるコンパイラ オプションです。

于 2014-06-09T02:27:12.870 に答える