在使用Android Studio 3.2.1
结合 NDK r16/r18
编译代码时候出现如下警告:
关键是出现警告的代码文件中并不一定存在abs
函数的调用。
这个警告产生的条件是在编译器中指定了STL
,并且指定编译器为GCC
,调用的源代码文件中恰好有STL
的代码。
类似如下:
原因在于新版本的NDK r16/r18
中,对于GCC
部分的适配已经不是非常完善了,已经逐步迁移到CLANG(LLVM)
了。导致STL
进行编译的时候,会出现一些警告信息。这个警告信息是STL
库的警告信息,跟我们自己的代码没有关系。
只需要指定 "-DANDROID_TOOLCHAIN=clang
" 即可解决这个问题。
参考链接
NDK r13, -fexceptions -Wall --> warning: conflicts with previous declaration