libgvr.把最佳实践联系起来

libgvr.so linking best practices?

本文关键字:联系 起来 最佳 libgvr      更新时间:2023-10-16

我包括libgvr。将库导入我的Android。通过将它包含在我的LOCAL_SRC_FILES:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
        GVR_LIB_PATH :=  $(GVR_DIR)/ndk-beta/lib/android_arm
else
        ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
                GVR_LIB_PATH :=  $(GVR_DIR)/ndk-beta/lib/android_arm64
        else
                $(error Invalid architecture!)
        endif
endif
LOCAL_CPPFLAGS := -std=c++11 -Wall -Wextra
LOCAL_SRC_FILES := 
    foo.cpp 
    bar.cpp 
    $(GVR_LIB_PATH)/libgvr.so
LOCAL_C_INCLUDES := 
        include 
    generated 
        $(GVR_DIR)/ndk-beta/include/vr/gvr/capi/include 
        $(GVR_DIR)/ndk-beta/include
LOCAL_ALLOW_UNDEFINED_SYMBOLS := false

$GVR_LIB_PATH定义的起始路径到正确的目录。然而,当编译和链接我的代码时,我得到了我在这里调用的函数的无法解析的符号:

Error:(1155) undefined reference to 'gvr_destroy'
Error:(1299) undefined reference to 'gvr_get_time_point_now'
Error:(1248) undefined reference to 'gvr_get_head_pose_in_start_space'

链接libgvr的最佳方式是什么?所以使用ndk-build?如果这只是我遗漏的一个小命名错误,我提前道歉。

我没有考虑到不同的架构,但这是最终为我工作的:

include $(CLEAR_VARS)
LOCAL_MODULE := libgvr
LOCAL_SRC_FILES := $(GVR_ANDROID_BASE)/ndk-beta/lib/android_arm/libgvr.so
include $(PREBUILT_SHARED_LIBRARY)
LOCAL_SHARED_LIBRARIES  += libgvr

GVR_ANDROID_BASE指向从github克隆ZIP归档解压的目录。