Android ndk找不到atof功能

前端之家收集整理的这篇文章主要介绍了Android ndk找不到atof功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在我的 Android项目中使用开源C库.该库使用atof()函数.我知道atof()是标准C库(stdlib.h)中定义的函数.因此,它应该在Android NDK(仿生库)上的标准C库中实现.

但是,当我尝试加载包含对此函数调用的库时,我收到运行时错误

java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1285]:    86 cannot locate 'atof'....

我是使用NDK进行Android开发的初学者,所以也许我只是错过了标志,编译器指令等等.

我的android.mk文件是:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_ALLOW_UNDEFINED_SYMBOLS := true

LS_CPP=$(subst $(1)/,$(wildcard $(1)/$(2)/*.c))


LOCAL_MODULE := libA

LOCAL_SHARED_LIBRARIES :=       \
                            libgmodule-2.0          \
                            libgobject-2.0          \
                            libgthread-2.0          \
                            libglib-2.0

LOCAL_SRC_FILES:= sourceFile.c



include $(BUILD_SHARED_LIBRARY

解决方法

stdlib.h in the Android source;
static __inline__ double atof(const char *nptr)
{
    return (strtod(nptr,NULL));
}

换句话说,atof不是库函数,它是一个调用strtod的内联函数.

如果您需要通过加载库来调用,只需使用strtod.

猜你在找的Android相关文章