{"id":6211,"date":"2014-04-13T23:07:25","date_gmt":"2014-04-13T23:07:25","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2014\/04\/13\/building-shared-library-with-android-ndk-undefined-references-collection-of-common-programming-errors\/"},"modified":"2014-04-13T23:07:25","modified_gmt":"2014-04-13T23:07:25","slug":"building-shared-library-with-android-ndk-undefined-references-collection-of-common-programming-errors","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2014\/04\/13\/building-shared-library-with-android-ndk-undefined-references-collection-of-common-programming-errors\/","title":{"rendered":"Building shared library with Android NDK &#8211; undefined references-Collection of common programming errors"},"content":{"rendered":"<p>I&#8217;m trying to build a shared library I can use to access native bluetooth API functions. I&#8217;m currently trying to compile a c file from: https:\/\/android.googlesource.com\/platform\/external\/bluetooth\/bluedroid\/<\/p>\n<p>Whenever I attempt to compile any of this code as a shared library I get numerous undefined reference errors.. it looks like to every function referenced by the header files. In my latest attempt, I copied the entire bluedroid\/bta file to my eclipse project\/jni folder. Using the included Android.mk with minimal modification, I can compile to a static library. However, if i change the line: include $(BUILD_STATIC_LIBRARY) to<\/p>\n<p>include $(BUILD_SHARED_LIBRARY)<\/p>\n<p>I get numerous errors. How would I go about building a shared library?<\/p>\n<p>Here is my Android.mk:<\/p>\n<pre><code>LOCAL_PATH:= $(call my-dir)\nBLUEDROID_DIR := \/cygdrive\/bluedroid\/\ninclude $(CLEAR_VARS)\nLOCAL_CFLAGS += \\\n    -DBOARD_HAVE_BLUETOOTH_BCM\nLOCAL_CFLAGS += -DBUILDCFG $(bdroid_CFLAGS)\n\nLOCAL_PRELINK_MODULE:=false \nLOCAL_SRC_FILES:= \\\n    .\/dm\/bta_dm_ci.c \\\n    .\/dm\/bta_dm_act.c \\\n    .\/dm\/bta_dm_pm.c \\\n    .\/dm\/bta_dm_main.c \\\n    .\/dm\/bta_dm_cfg.c \\\n    .\/dm\/bta_dm_api.c \\\n    .\/dm\/bta_dm_sco.c \\\n    .\/gatt\/bta_gattc_api.c \\\n    .\/gatt\/bta_gatts_act.c \\\n    .\/gatt\/bta_gatts_main.c \\\n    .\/gatt\/bta_gattc_utils.c \\\n    .\/gatt\/bta_gattc_ci.c \\\n    .\/gatt\/bta_gatts_api.c \\\n    .\/gatt\/bta_gattc_main.c \\\n    .\/gatt\/bta_gattc_act.c \\\n    .\/gatt\/bta_gattc_cache.c \\\n    .\/gatt\/bta_gatts_utils.c \\\n    .\/ag\/bta_ag_sdp.c \\\n    .\/ag\/bta_ag_sco.c \\\n    .\/ag\/bta_ag_cfg.c \\\n    .\/ag\/bta_ag_main.c \\\n    .\/ag\/bta_ag_api.c \\\n    .\/ag\/bta_ag_rfc.c \\\n    .\/ag\/bta_ag_act.c \\\n    .\/ag\/bta_ag_cmd.c \\\n    .\/ag\/bta_ag_ci.c \\\n    .\/ag\/bta_ag_at.c \\\n    .\/hh\/bta_hh_cfg.c \\\n    .\/hh\/bta_hh_act.c \\\n    .\/hh\/bta_hh_api.c \\\n    .\/hh\/bta_hh_le.c \\\n    .\/hh\/bta_hh_utils.c \\\n    .\/hh\/bta_hh_main.c \\\n    .\/pb\/bta_pbs_cfg.c \\\n    .\/fs\/bta_fs_ci.c \\\n    .\/fs\/bta_fs_cfg.c \\\n    .\/pan\/bta_pan_main.c \\\n    .\/pan\/bta_pan_ci.c \\\n    .\/pan\/bta_pan_act.c \\\n    .\/pan\/bta_pan_api.c \\\n    .\/av\/bta_av_act.c \\\n    .\/av\/bta_av_ci.c \\\n   .\/av\/bta_av_api.c \\\n    .\/av\/bta_av_aact.c \\\n    .\/av\/bta_av_main.c \\\n    .\/av\/bta_av_cfg.c \\\n    .\/av\/bta_av_ssm.c \\\n    .\/av\/bta_av_sbc.c \\\n    .\/ar\/bta_ar.c \\\n.\/hl\/bta_hl_act.c \\\n.\/hl\/bta_hl_api.c \\\n.\/hl\/bta_hl_main.c \\\n.\/hl\/bta_hl_utils.c \\\n.\/hl\/bta_hl_sdp.c \\\n.\/hl\/bta_hl_ci.c \\\n.\/sys\/bta_sys_main.c \\\n.\/sys\/bta_sys_ci.c \\\n.\/sys\/bta_sys_conn.c \\\n.\/sys\/bta_sys_cfg.c \\\n.\/sys\/ptim.c \\\n.\/sys\/bd.c \\\n.\/sys\/utl.c \\\n.\/jv\/bta_jv_act.c \\\n.\/jv\/bta_jv_cfg.c \\\n.\/jv\/bta_jv_main.c \\\n.\/jv\/bta_jv_api.c\n\nLOCAL_MODULE := libbt-brcm_bta\nLOCAL_MODULE_CLASS := STATIC_LIBRARIES\nLOCAL_MODULE_TAGS := optional\nLOCAL_SHARED_LIBRARIES := libcutils libc\n\nLOCAL_C_INCLUDES+= . \\\n               $(LOCAL_PATH)\/include \\\n               $(LOCAL_PATH)\/sys \\\n               $(LOCAL_PATH)\/dm \\\n               $(LOCAL_PATH)\/hh \\\n              $(BLUEDROID_DIR)\/gki\/common \\\n              $(BLUEDROID_DIR)\/gki\/ulinux \\\n              $(BLUEDROID_DIR)\/include \\\n              $(BLUEDROID_DIR)\/stack\/include \\\n              $(BLUEDROID_DIR)\/stack\/btm \\\n              $(BLUEDROID_DIR)\/hcis \\\n              $(BLUEDROID_DIR)\/hcis\/patchram \\\n              $(BLUEDROID_DIR)\/udrv\/include \\\n              $(BLUEDROID_DIR)\/brcm\/include \\\n               $(bdroid_C_INCLUDES) \\\n\ninclude $(BUILD_SHARED_LIBRARY)\n<\/code><\/pre>\n<p>and here is some of the output (can&#8217;t fit it all):<\/p>\n<pre><code>[armeabi] SharedLibrary  : libbt-brcm_bta.so\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_ci.o: in function bta_dm_ci_io_req:jni\/.\/dm\/bta_dm_ci.c:52: error: undefined reference to 'GKI_getbuf'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_ci.o: in function bta_dm_ci_rmt_oob:jni\/.\/dm\/bta_dm_ci.c:78: error: undefined reference to 'GKI_getbuf'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_observe_cmpl_cb:jni\/.\/dm\/bta_dm_act.c:4619: error: undefined reference to 'LogMsg_0'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_encrypt_cback:jni\/.\/dm\/bta_dm_act.c:4489: error: undefined reference to 'LogMsg_2'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_new_link_key_cback:jni\/.\/dm\/bta_dm_act.c:2916: error: undefined reference to 'LogMsg_0'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_remove_sec_dev_entry:jni\/.\/dm\/bta_dm_act.c:3750: error: undefined reference to 'BTM_IsAclConnectionUp'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_remove_sec_dev_entry:jni\/.\/dm\/bta_dm_act.c:3752: error: undefined reference to 'LogMsg_1'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_remove_sec_dev_entry:jni\/.\/dm\/bta_dm_act.c:3765: error: undefined reference to 'LogMsg_1'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_remove_sec_dev_entry:jni\/.\/dm\/bta_dm_act.c:3770: error: undefined reference to 'BTM_SecDeleteDevice'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_pin_cback:jni\/.\/dm\/bta_dm_act.c:2832: error: undefined reference to 'BTM_ReadRemoteDeviceName'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_pin_cback:jni\/.\/dm\/bta_dm_act.c:2835: error: undefined reference to 'LogMsg_0'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_sp_cback:jni\/.\/dm\/bta_dm_act.c:2977: error: undefined reference to 'LogMsg_1'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_sp_cback:jni\/.\/dm\/bta_dm_act.c:2987: error: undefined reference to 'bta_dm_co_io_req'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_sp_cback:jni\/.\/dm\/bta_dm_act.c:2994: error: undefined reference to 'LogMsg_2'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_sp_cback:jni\/.\/dm\/bta_dm_act.c:2998: error: undefined reference to 'bta_dm_co_io_rsp'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_sp_cback:jni\/.\/dm\/bta_dm_act.c:3024: error: undefined reference to 'BTM_ReadRemoteDeviceName'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_sp_cback:jni\/.\/dm\/bta_dm_act.c:3027: error: undefined reference to 'LogMsg_0'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_sp_cback:jni\/.\/dm\/bta_dm_act.c:3040: error: undefined reference to 'bta_dm_co_loc_oob'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_sp_cback:jni\/.\/dm\/bta_dm_act.c:3051: error: undefined reference to 'BTM_ReadRemoteDeviceName'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_sp_cback:jni\/.\/dm\/bta_dm_act.c:3063: error: undefined reference to 'bta_dm_co_rmt_oob'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_sp_cback:jni\/.\/dm\/bta_dm_act.c:3076: error: undefined reference to 'bta_dm_co_lk_upgrade'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_sp_cback:jni\/.\/dm\/bta_dm_act.c:3083: error: undefined reference to 'LogMsg_1'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_sdp_callback:jni\/.\/dm\/bta_dm_act.c:2503: error: undefined reference to 'GKI_getbuf'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_bl_change_cback:jni\/.\/dm\/bta_dm_act.c:3189: error: undefined reference to 'GKI_getbuf'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_observe_results_cb:jni\/.\/dm\/bta_dm_act.c:4587: error: undefined reference to 'BTM_InqDbRead'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_inq_results_cb:jni\/.\/dm\/bta_dm_act.c:2544: error: undefined reference to 'BTM_InqDbRead'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_set_eir:jni\/.\/dm\/bta_dm_act.c:4044: error: undefined reference to 'BTM_ReadLocalDeviceName'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_set_eir:jni\/.\/dm\/bta_dm_act.c:4052: error: undefined reference to 'GKI_getpoolbuf'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_set_eir:jni\/.\/dm\/bta_dm_act.c:4078: error: undefined reference to 'BTM_GetEirSupportedServices'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_set_eir:jni\/.\/dm\/bta_dm_act.c:4140: error: undefined reference to 'BTM_GetEirSupportedServices'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_set_eir:jni\/.\/dm\/bta_dm_act.c:4289: error: undefined reference to 'BTM_WriteEIR'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_policy_cback:jni\/.\/dm\/bta_dm_act.c:983: error: undefined reference to 'LogMsg_2'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_policy_cback:jni\/.\/dm\/bta_dm_act.c:992: error: undefined reference to 'BTM_SetLinkPolicy'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_policy_cback:jni\/.\/dm\/bta_dm_act.c:1000: error: undefined reference to 'BTM_SetLinkPolicy'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_policy_cback:jni\/.\/dm\/bta_dm_act.c:1024: error: undefined reference to 'BTM_SetDefaultLinkPolicy'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_check_av:jni\/.\/dm\/bta_dm_act.c:3313: error: undefined reference to 'LogMsg_4'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_check_av:jni\/.\/dm\/bta_dm_act.c:3319: error: undefined reference to 'BTM_SwitchRole'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_remname_cback:jni\/.\/dm\/bta_dm_act.c:2660: error: undefined reference to 'LogMsg_2'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/dm\/bta_dm_act.o: in function bta_dm_remname_cback:jni\/.\/dm\/bta_dm_act.c:2668: error: undefined reference to 'BTM_SecDeleteRmtNameNotifyCallback'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x8\n....\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_connect:jni\/.\/jv\/bta_jv_act.c:2114: error: undefined reference to 'PORT_SetEventMask'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_connect:jni\/.\/jv\/bta_jv_act.c:2115: error: undefined reference to 'PORT_SetDataCOCallback'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_connect:jni\/.\/jv\/bta_jv_act.c:2117: error: undefined reference to 'PORT_GetState'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_connect:jni\/.\/jv\/bta_jv_act.c:2123: error: undefined reference to 'PORT_SetState'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_connect:jni\/.\/jv\/bta_jv_act.c:2139: error: undefined reference to 'RFCOMM_RemoveConnection'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_start_server:jni\/.\/jv\/bta_jv_act.c:2463: error: undefined reference to 'BTM_SetSecurityLevel'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_start_server:jni\/.\/jv\/bta_jv_act.c:2496: error: undefined reference to 'PORT_ClearKeepHandleFlag'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_start_server:jni\/.\/jv\/bta_jv_act.c:2497: error: undefined reference to 'PORT_SetEventCallback'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_start_server:jni\/.\/jv\/bta_jv_act.c:2498: error: undefined reference to 'PORT_SetEventMask'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_start_server:jni\/.\/jv\/bta_jv_act.c:2499: error: undefined reference to 'PORT_GetState'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_start_server:jni\/.\/jv\/bta_jv_act.c:2505: error: undefined reference to 'PORT_SetState'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_start_server:jni\/.\/jv\/bta_jv_act.c:2510: error: undefined reference to 'PORT_SetDataCOCallback'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_start_server:jni\/.\/jv\/bta_jv_act.c:2517: error: undefined reference to 'RFCOMM_RemoveConnection'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_read:jni\/.\/jv\/bta_jv_act.c:2572: error: undefined reference to 'PORT_ReadData'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_rfcomm_write:jni\/.\/jv\/bta_jv_act.c:2604: error: undefined reference to 'PORT_WriteDataCO'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_set_pm_profile:jni\/.\/jv\/bta_jv_act.c:534: error: undefined reference to 'PORT_CheckConnection'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_act.o: in function bta_jv_set_pm_profile:jni\/.\/jv\/bta_jv_act.c:549: error: undefined reference to 'GAP_ConnGetRemoteAddr'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_api.o: in function BTA_JvGetDiscoverability:jni\/.\/jv\/bta_jv_api.c:176: error: undefined reference to 'BTM_ReadDiscoverability'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_api.o: in function BTA_JvGetPreknownDevice:jni\/.\/jv\/bta_jv_api.c:284: error: undefined reference to 'BTM_InqFirstResult'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_api.o: in function BTA_JvGetPreknownDevice:jni\/.\/jv\/bta_jv_api.c:306: error: undefined reference to 'BTM_InqNextResult'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_api.o: in function BTA_JvGetDeviceClass:jni\/.\/jv\/bta_jv_api.c:351: error: undefined reference to 'BTM_ReadDeviceClass'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_api.o: in function BTA_JvIsAuthenticated:jni\/.\/jv\/bta_jv_api.c:426: error: undefined reference to 'BTM_GetSecurityFlags'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_api.o: in function BTA_JvGetSecurityMode:jni\/.\/jv\/bta_jv_api.c:519: error: undefined reference to 'BTM_GetSecurityMode'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_api.o: in function BTA_JvReadRecord:jni\/.\/jv\/bta_jv_api.c:991: error: undefined reference to 'SDP_ReadRecord'\nC:\/android-ndk-r9c\/toolchains\/arm-linux-androideabi-4.6\/prebuilt\/windows-x86_64\/bin\/..\/lib\/gcc\/arm-linux-androideabi\/4.6\/..\/..\/..\/..\/arm-linux-androideabi\/bin\/ld.exe: .\/obj\/local\/armeabi\/objs\/bt-brcm_bta\/.\/jv\/bta_jv_api.o: in function BTA_JvRfcommReady:jni\/.\/jv\/bta_jv_api.c:1551: error: undefined reference to 'PORT_GetRxQueueCnt'\ncollect2: ld returned 1 exit status\n\/cygdrive\/c\/android-ndk-r9c\/build\/core\/build-binary.mk:579: recipe for target 'obj\/local\/armeabi\/libbt-brcm_bta.so' failed\nmake: *** [obj\/local\/armeabi\/libbt-brcm_bta.so] Error 1\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m trying to build a shared library I can use to access native bluetooth API functions. I&#8217;m currently trying to compile a c file from: https:\/\/android.googlesource.com\/platform\/external\/bluetooth\/bluedroid\/ Whenever I attempt to compile any of this code as a shared library I get numerous undefined reference errors.. it looks like to every function referenced by the header [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6211","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/6211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/comments?post=6211"}],"version-history":[{"count":0,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/6211\/revisions"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=6211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=6211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=6211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}