libgvr.so 链接最佳实践?
libgvr.so linking best practices?
我将 libgvr.so 库包含在我的 Android.mk 中,方法是将其包含在我的 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开头定义的路径到正确的目录。但是,在编译和 linking 我的代码时,我在此处调用的函数得到无法解析的符号:
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'
使用 ndk-build link 对抗 libgvr.so 的最佳方法是什么?如果这只是我遗漏的一个小命名错误,我提前道歉。
我没有考虑到您尝试的不同架构,但最终对我有用的是:
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 存档中解压的目录。
我将 libgvr.so 库包含在我的 Android.mk 中,方法是将其包含在我的 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开头定义的路径到正确的目录。但是,在编译和 linking 我的代码时,我在此处调用的函数得到无法解析的符号:
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'
使用 ndk-build link 对抗 libgvr.so 的最佳方法是什么?如果这只是我遗漏的一个小命名错误,我提前道歉。
我没有考虑到您尝试的不同架构,但最终对我有用的是:
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 存档中解压的目录。