SRD

linking

SRD
Aug 29th, 2016
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. While trying to compile my C++ application, I get the following link error.
  2.  
  3. /home/me/tools/crystax-ndk-10.3.2/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -Wl,--gc-sections -Wl,-z,nocopyreloc --sysroot=/home/me/tools/crystax-ndk-10.3.2/platforms/android-21/arch-arm -Wl,-rpath-link=/home/me/tools/crystax-ndk-10.3.2/platforms/android-21/arch-arm/usr/lib -Wl,-rpath-link=/home/me/workspace/elm/elm/src/comps/van/obj/local/armeabi-v7a /home/me/workspace/elm/elm/src/comps/van/obj/local/armeabi-v7a/objs/rn/main.o /home/me/workspace/elm/elm/src/comps/van/obj/local/armeabi-v7a/objs/rn/init.o -lgcc /home/me/workspace/elm/elm/src/comps/van/obj/local/armeabi-v7a/librcom.so /home/me/workspace/elm/elm/src/comps/van/obj/local/armeabi-v7a/libgnustl_shared.so -no-canonical-prefixes -march=armv7-a -Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -fPIE -pie -mthumb -L/home/me/tools/ros-android-ndk/roscpp_android/output/roscpp_android_ndk/lib /home/me/tools/crystax-ndk-10.3.2/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/libsupc++.a -L/home/me/tools/crystax-ndk-10.3.2/sources/crystax/empty /home/me/tools/crystax-ndk-10.3.2/sources/crystax/libs/armeabi-v7a/thumb/libcrystax.so -lc -o /home/me/workspace/elm/elm/src/comps/van/obj/local/armeabi-v7a/rn
  4.  
  5. jni/main.cpp:34: error: undefined reference to 'ros::init(int&, char**, std::string const&, unsigned int)'
  6. collect2: error: ld returned 1 exit status
  7.  
  8. Yet, the needed library (libroscpp.a) is being included and appears to have the correct symbol.
  9.  
  10. $ nm -C ./libroscpp.a | grep "ros::init"
  11.  
  12. 00000001 T ros::init(int&, char**, std::string const&, unsigned int)
  13.  
  14. Anyone have thoughts about what might be going on?
  15.  
  16. Here's my build file (Android.mk).
  17.  
  18. LOCAL_PATH := $(call my-dir)
  19.  
  20. MY_ELM_HOME := /home/me/workspace/elm/elm/src
  21. MY_ELM_INCL := /home/me/workspace/elm/elm/src/includes
  22. MY_ROS_HOME := /home/me/tools/ros-android-ndk/roscpp_android/output/roscpp_android_ndk
  23.  
  24. MY_COMMONS_INCL := $(MY_ELM_HOME)/includes/commons
  25. MY_COMMONS_LIBS := $(MY_ELM_HOME)/libs/commons/libs/armeabi-v7a
  26. MY_ROS_INCL := $(MY_ROS_HOME)/include
  27. MY_ROS_LIBS := $(MY_ROS_HOME)/lib
  28.  
  29. include $(CLEAR_VARS)
  30. LOCAL_MODULE := settings
  31. LOCAL_SRC_FILES := $(MY_COMMONS_LIBS)/libelm_commons.so
  32. include $(PREBUILT_SHARED_LIBRARY)
  33.  
  34. include $(CLEAR_VARS)
  35. LOCAL_MODULE := eam
  36. LOCAL_C_INCLUDES := $(MY_ELM_INCL)
  37. LOCAL_C_INCLUDES += $(MY_ROS_INCL)
  38. LOCAL_SRC_FILES := main.cpp
  39. LOCAL_SRC_FILES += init.cpp
  40. LOCAL_CPPFLAGS := -std=gnu++14
  41. LOCAL_CPP_FEATURES := rtti exceptions
  42. LOCAL_LDLIBS := -L$(MY_ROS_LIBS)
  43. LOCAL_SHARED_LIBRARIES := settings
  44. LOCAL_STATIC_LIBRARIES := libroscpp
  45. LOCAL_STATIC_LIBRARIES += libroscpp_serialization
  46. LOCAL_STATIC_LIBRARIES += librosconsole
  47. include $(BUILD_EXECUTABLE)
  48.  
  49. $(call import-module,boost/1.59.0)
Advertisement
Add Comment
Please, Sign In to add comment