1

我正在使用 Android NDK 用 C 语言构建一个库,该库链接到另一个团队提供的一些静态库。如果我调用在其中一个库中定义的函数,但未由我导入的任何头文件声明,则编译器不会收到任何错误或警告。看起来编译器假定我传入的参数是正确的类型。我不喜欢这样,因为我可能会错误地调用该函数并且不知道它。

例如,如果静态库包含像“void MyFunc(int a, char *b);”这样的函数,那么我预计以下每个都会产生错误:

  • 我的函数();
  • MyFunc(1, 2);
  • MyFunc(1, '2', 3);

如果我包含函数的声明,那么编译器会强制参数的数量和类型是正确的。

有没有办法告诉 NDK 编译器在调用未声明的函数时显示错误或警告?

4

1 回答 1

0

在 Android.mk 中,将-Wimplicit-function-declaration或添加-Werror-implicit-function-declarationLOCAL_CFLAGS变量中。或添加-Wall;那也很好。(谢谢,fadden!)

于 2013-07-29T15:47:23.000 回答