2014-02-25 84 views
0

我正嘗試構建可用於訪問本機藍牙API函數的共享庫。我目前正試圖編譯一個c文件:https://android.googlesource.com/platform/external/bluetooth/bluedroid/使用Android NDK構建共享庫 - 未定義的參考

每當我試圖將這些代碼作爲共享庫編譯時,我會遇到很多未定義的引用錯誤..它看起來像頭文件引用的每個函數。在我最近的嘗試中,我將整個bluedroid/bta文件複製到了我的eclipse項目/ jni文件夾中。使用附帶的Android.mk進行最小的修改,我可以編譯爲靜態庫。但是,如果我改變該行:
包括$(BUILD_STATIC_LIBRARY)

包括$(BUILD_SHARED_LIBRARY)

我得到許多錯誤。我將如何去建立共享庫?

這裏是我的Android.mk:

LOCAL_PATH:= $(call my-dir) 
BLUEDROID_DIR := /cygdrive/bluedroid/ 
include $(CLEAR_VARS) 
LOCAL_CFLAGS += \ 
    -DBOARD_HAVE_BLUETOOTH_BCM 
LOCAL_CFLAGS += -DBUILDCFG $(bdroid_CFLAGS) 

LOCAL_PRELINK_MODULE:=false 
LOCAL_SRC_FILES:= \ 
    ./dm/bta_dm_ci.c \ 
    ./dm/bta_dm_act.c \ 
    ./dm/bta_dm_pm.c \ 
    ./dm/bta_dm_main.c \ 
    ./dm/bta_dm_cfg.c \ 
    ./dm/bta_dm_api.c \ 
    ./dm/bta_dm_sco.c \ 
    ./gatt/bta_gattc_api.c \ 
    ./gatt/bta_gatts_act.c \ 
    ./gatt/bta_gatts_main.c \ 
    ./gatt/bta_gattc_utils.c \ 
    ./gatt/bta_gattc_ci.c \ 
    ./gatt/bta_gatts_api.c \ 
    ./gatt/bta_gattc_main.c \ 
    ./gatt/bta_gattc_act.c \ 
    ./gatt/bta_gattc_cache.c \ 
    ./gatt/bta_gatts_utils.c \ 
    ./ag/bta_ag_sdp.c \ 
    ./ag/bta_ag_sco.c \ 
    ./ag/bta_ag_cfg.c \ 
    ./ag/bta_ag_main.c \ 
    ./ag/bta_ag_api.c \ 
    ./ag/bta_ag_rfc.c \ 
    ./ag/bta_ag_act.c \ 
    ./ag/bta_ag_cmd.c \ 
    ./ag/bta_ag_ci.c \ 
    ./ag/bta_ag_at.c \ 
    ./hh/bta_hh_cfg.c \ 
    ./hh/bta_hh_act.c \ 
    ./hh/bta_hh_api.c \ 
    ./hh/bta_hh_le.c \ 
    ./hh/bta_hh_utils.c \ 
    ./hh/bta_hh_main.c \ 
    ./pb/bta_pbs_cfg.c \ 
    ./fs/bta_fs_ci.c \ 
    ./fs/bta_fs_cfg.c \ 
    ./pan/bta_pan_main.c \ 
    ./pan/bta_pan_ci.c \ 
    ./pan/bta_pan_act.c \ 
    ./pan/bta_pan_api.c \ 
    ./av/bta_av_act.c \ 
    ./av/bta_av_ci.c \ 
    ./av/bta_av_api.c \ 
    ./av/bta_av_aact.c \ 
    ./av/bta_av_main.c \ 
    ./av/bta_av_cfg.c \ 
    ./av/bta_av_ssm.c \ 
    ./av/bta_av_sbc.c \ 
    ./ar/bta_ar.c \ 
./hl/bta_hl_act.c \ 
./hl/bta_hl_api.c \ 
./hl/bta_hl_main.c \ 
./hl/bta_hl_utils.c \ 
./hl/bta_hl_sdp.c \ 
./hl/bta_hl_ci.c \ 
./sys/bta_sys_main.c \ 
./sys/bta_sys_ci.c \ 
./sys/bta_sys_conn.c \ 
./sys/bta_sys_cfg.c \ 
./sys/ptim.c \ 
./sys/bd.c \ 
./sys/utl.c \ 
./jv/bta_jv_act.c \ 
./jv/bta_jv_cfg.c \ 
./jv/bta_jv_main.c \ 
./jv/bta_jv_api.c 

LOCAL_MODULE := libbt-brcm_bta 
LOCAL_MODULE_CLASS := STATIC_LIBRARIES 
LOCAL_MODULE_TAGS := optional 
LOCAL_SHARED_LIBRARIES := libcutils libc 

LOCAL_C_INCLUDES+= . \ 
       $(LOCAL_PATH)/include \ 
       $(LOCAL_PATH)/sys \ 
       $(LOCAL_PATH)/dm \ 
       $(LOCAL_PATH)/hh \ 
       $(BLUEDROID_DIR)/gki/common \ 
       $(BLUEDROID_DIR)/gki/ulinux \ 
       $(BLUEDROID_DIR)/include \ 
       $(BLUEDROID_DIR)/stack/include \ 
       $(BLUEDROID_DIR)/stack/btm \ 
       $(BLUEDROID_DIR)/hcis \ 
       $(BLUEDROID_DIR)/hcis/patchram \ 
       $(BLUEDROID_DIR)/udrv/include \ 
       $(BLUEDROID_DIR)/brcm/include \ 
       $(bdroid_C_INCLUDES) \ 

include $(BUILD_SHARED_LIBRARY) 

,這裏是一些輸出的(不能適合所有):

[armeabi] SharedLibrary : libbt-brcm_bta.so 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x8 
.... 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
C:/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' 
collect2: ld returned 1 exit status 
/cygdrive/c/android-ndk-r9c/build/core/build-binary.mk:579: recipe for target 'obj/local/armeabi/libbt-brcm_bta.so' failed 
make: *** [obj/local/armeabi/libbt-brcm_bta.so] Error 1 
+0

您是否設法編譯bluedroid? –

+0

在我不得不轉向別的東西之前,我不認爲我做過。 – user3157940

回答

0

NDK不使用Cygwin和不能識別cygdrive路徑;將其更改爲c:/adev/bluedroid或類似。

+0

我改變了窗口的路徑,並從窗口運行ndk-build,但我得到了與cygwin下相同的結果,大量未定義的引用錯誤 – user3157940

+0

我不會爲您查找所有缺少的引用,但'GKI_getbuf'在[gki/common/gki_buffer.c](https://android.googlesource.com/platform/external/bluetooth/bluedroid/+/master/gki/common/gki_buffer.c)中定義。我不知道爲什麼這個文件和它的父目錄從你的'LOCAL_SRC_FILES'中丟失了。但'bluedroid'在系統樹中建立的方式是遞歸地包含所有子'Android.mk'文件。也許你應該效仿他們的榜樣? –

+0

是的,我認爲你是從頂級Android.mk遞歸地編譯整個bluedroid項目是正確的。我試過這裏:http://stackoverflow.com/questions/22001271/android-ndk-accessing-native-bluetooth-functions-bluedroid,似乎進一步得到了很多。 – user3157940

-1

Android.mklocal_allow_undefined_symbols:=true

相關問題