我正在使用NDK构建并看到这个奇怪的链接器错误:
./external/stlport/stlport/stl/_fstream.c:139: error: undefined reference to 'std::_Filebuf_base::_M_seek(long long, int)'
./external/stlport/stlport/stl/_fstream.c:391: error: undefined reference to 'std::_Filebuf_base::_M_seek(long long, int)'
./external/stlport/stlport/stl/_fstream.c:120: error: undefined reference to 'std::_Filebuf_base::_M_unmap(void*, long long)'
./external/stlport/stlport/stl/_fstream.c:320: error: undefined reference to 'std::_Filebuf_base::_M_seek(long long, int)'
./external/stlport/stlport/stl/_fstream.c:336: error: undefined reference to 'std::_Filebuf_base::_M_seek(long long, int)'
./external/stlport/stlport/stl/_fstream.c:120: error: undefined reference to 'std::_Filebuf_base::_M_unmap(void*, long long)'
./external/stlport/stlport/stl/_fstream.c:120: error: undefined reference to 'std::_Filebuf_base::_M_unmap(void*, long long)'
./external/stlport/stlport/stl/_fstream.c:120: error: undefined reference to 'std::_Filebuf_base::_M_unmap(void*, long long)'
collect2: error: ld returned 1 exit status我得到了fstream.o的objdump输出&我确实看到了这个_M_seek()函数。你知道为什么它还是找不到它吗?以下是我的Android.mk中的一些条目:
LOCAL_C_INCLUDES += $(TOP)/external/stlport/stlport \
$(TOP)/bionic/libstdc++/include \
$(TOP)/bionic \
LOCAL_CFLAGS += -std=gnu++11 -std=c++11
LOCAL_CPPFLAGS := -std=gnu++11 -std=c++11
LOCAL_SHARED_LIBRARIES := libcutils liblog libutils libstlport我错过了什么吗?
发布于 2016-07-24 23:33:01
查看是否在Android.mk文件中定义了_LARGEFILE_SOURCE。如果已经定义了它,删除它可以解决问题。
https://stackoverflow.com/questions/30087133
复制相似问题