0
我包括libgvr.so库进入我的Android.mk将其包含在我的LOCAL_SRC_FILES:在一开始的路径正确的目录定义libgvr.so链接最佳实践?
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.so使用NDK-建立联系的最佳方式?如果这只是我错过的一个小命名错误,我提前道歉。
谢谢,是$(GVR_ANDROID_BASE)是你的绝对路径吗?您是否遇到LOCAL_SRC_FILES中存在绝对路径的问题? – Kadinski
$(GVR_ANDROID_BASE)最终被解析为绝对路径 - 我有一个超级项目根用相对路径定义,例如AbsoluteRoot = $(realpath ../../ ..),然后GVR_ANDROID_BASE最终以此为基础。 GVR_ANDROID_BASE:= $(AbsoluteRoot)/ external/gvr – Kaganar