Android NDK:调用未声明的函数时没有错误或警告

时间:2013-07-26 15:10:38

标签: android-ndk undefined-function

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

例如,如果静态库包含类似“void MyFunc(int a,char * b);”的函数,那么我希望以下各项都产生错误:

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

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

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

1 个答案:

答案 0 :(得分:0)

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