Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – std :: map链接器错误ndk r8c与APP_STL:= gnustl_static大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在Native应用程序中链接STL时遇到了一些问题.使用map :: operator []和map :: insert连接失败,同时与其他map函数成功.
我的Application.mk是: @H_404_8@

@H_404_8@

@H_607_8@APP_STL := gnustl_static APP_CPPFLAGS := -fexceptions -frtti APP_CPPFLAGS += -g3 APP_CPPFLAGS += -DDEBUG APP_ABI := armeabi-v7a APP_PLATFORM:=android-14 NDK_TOOLCHAIN_VERSION:=4.6 @H_404_8@本机代码包含两个文件夹级别.我为每个内部文件夹创建了一个Android.mk文件来编译并生成一个静态库.我在最深的文件夹中使用std :: map. Android.mk看起来像:

@H_404_8@

@H_607_8@TEMP_PATH_REG := $(call my-dir) LOCAL_PATH := $(TEMP_PATH_REG) include $(call all-subdir-makefiles) LOCAL_PATH := $(TEMP_PATH_REG) include $(CLEAR_VARS) LOCAL_MODULE := registration LOCAL_C_INCLUDES := $(LOCAL_PATH)/../glm/ LOCAL_SRC_FILES := registration_factory.cpp \ inertial.cpp LOCAL_LDLIBS := -llog -landroid -lEGL LOCAL_STATIC_LIBRARIES := android_native_app_glue include $(BUILD_STATIC_LIBRARY) $(call import-module,android/native_app_gluE) @H_404_8@当我构建项目时,我收到以下错误

@H_404_8@

@H_607_8@~/.android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi-v7a/libregistration.a(registration_factory.o): in function std::_Rb_tree<int,std::pair<int const,xmar::IRegistration*>,std::_SELEct1st<std::pair<int const,xmar::IRegistration*> >,std::less<int>,std::allocator<std::pair<int const,xmar::IRegistration*> > >::_M_insert_(std::_Rb_tree_node_base const*,std::_Rb_tree_node_base const*,xmar::IRegistration*> const&):~/.android-ndk-r8c/sources/cxx-stl/gnu-libstdc++/4.6/include/bits/stl_tree.h:1013: error: undefined reference to 'std::_Rb_tree_insert_and_rebalance(bool,std::_Rb_tree_node_base*,std::_Rb_tree_node_base&)' StaticLibrary : libandroid_native_app_glue.a rm -f obj/local/armeabi-v7a/libandroid_native_app_glue.a ~/.android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi-v7a/libregistration.a(registration_factory.o): in function std::_Rb_tree_const_iterator<std::pair<int const,xmar::IRegistration*> >::operator--():~/.android-ndk-r8c/sources/cxx-stl/gnu-libstdc++/4.6/include/bits/stl_tree.h:284: error: undefined reference to 'std::_Rb_tree_decrement(std::_Rb_tree_node_base const*)' ~/.android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-ar crs ./obj/local/armeabi-v7a/libandroid_native_app_glue.a ./obj/local/armeabi-v7a/objs-debug/android_native_app_glue/android_native_app_glue.o ~/.android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi-v7a/libregistration.a(registration_factory.o): in function std::_Rb_tree_const_iterator<std::pair<int const,xmar::IRegistration*> >::operator++():~/.android-ndk-r8c/sources/cxx-stl/gnu-libstdc++/4.6/include/bits/stl_tree.h:269: error: undefined reference to 'std::_Rb_tree_increment(std::_Rb_tree_node_base const*)' Prebuilt : libgnustl_static.a <= <NDK>/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/ ~/.android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi-v7a/libregistration.a(registration_factory.o): in function std::_Rb_tree_iterator<std::pair<int const,xmar::IRegistration*> >::operator--():~/.android-ndk-r8c/sources/cxx-stl/gnu-libstdc++/4.6/include/bits/stl_tree.h:203: error: undefined reference to 'std::_Rb_tree_decrement(std::_Rb_tree_node_base*)' @H_404_8@我做错了什么?

@H_404_8@非常感谢.

解决方法

我找到了一个编译项目的解决方法. @H_404_8@

@H_404_8@

@H_607_8@LOCAL_LDLIBS += ~/.android-ndk-r8c/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/libsupc++.a LOCAL_LDLIBS += ~/.android-ndk-r8c/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/libgnustl_static.a

大佬总结

以上是大佬教程为你收集整理的android – std :: map链接器错误ndk r8c与APP_STL:= gnustl_static全部内容,希望文章能够帮你解决android – std :: map链接器错误ndk r8c与APP_STL:= gnustl_static所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。