1

別のチームが提供するいくつかの静的ライブラリにリンクする Android NDK を使用して、C でライブラリを構築しています。これらのライブラリのいずれかで定義されているが、インポートされたヘッダーで宣言されていない関数を呼び出しても、コンパイラからエラーや警告は表示されません。コンパイラは、私が渡す引数が正しい型であると想定しているようです。関数を間違って呼び出して知らない可能性があるため、これは好きではありません。

たとえば、静的ライブラリに「void MyFunc(int a, char *b);」のような関数が含まれている場合、次のそれぞれでエラーが発生すると予想されます。

  • MyFunc();
  • MyFunc(1, 2);
  • MyFunc(1, '2', 3);

関数の宣言を含めると、コンパイラはパラメーターの数と型が正しいことを強制します。

宣言されていない関数が呼び出されたときにエラーまたは警告を表示するように NDK コンパイラに指示する方法はありますか?

4

1 に答える 1

0

Android.mk で、変数に-Wimplicit-function-declarationor-Werror-implicit-function-declarationを追加しLOCAL_CFLAGSます。または追加-Wall; それもいいです。(ありがとう、ファデン!)

于 2013-07-29T15:47:23.000 に答える