【问题标题】:Undefined reference Android NDK未定义参考 Android NDK
【发布时间】:2013-07-17 15:46:07
【问题描述】:

我正在使用Android NDK,编译未定义引用时出现我的代码AVI_open_input_file,而eclipse出现Could not find Symbol AVI_open_input_file in index,这个库我在项目中有,但没有考虑到好像不存在,一直在看论坛,无法修复它

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 
# LOCAL_MODULE := main 
LOCAL_MODULE := PrincipalEncoder 
LOCAL_SRC_FILES := PrincipalEncoder.cpp
LOCAL_LDLIBS := -lGLESv1_CM -llog 
include $(BUILD_SHARED_LIBRARY) 
# second lib, which will depend on and include the first one 
include $(CLEAR_VARS) 
LOCAL_MODULE := avilib
LOCAL_SRC_FILES := avilib.c 
LOCAL_WHOLE_STATIC_LIBRARIES := libstlport_static
include $(BUILD_SHARED_LIBRARY) 

【问题讨论】:

  • 您确定要将库链接到构建吗?
  • 在我链接的 Android.mk 文件中
  • 你在说什么链接?无论如何不要发布链接,将文件粘贴到此处。
  • LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) #LOCAL_MODULE := main LOCAL_MODULE := PrincipalEncoder LOCAL_SRC_FILES := PrincipalEncoder.cpp LOCAL_LDLIBS := -lGLESv1_CM -llog include $(BUILD_SHARED_LIBRARY) # 第二个库,它将依赖并包含第一个库 include $(CLEAR_VARS) LOCAL_MODULE := avilib LOCAL_SRC_FILES := avilib.c LOCAL_WHOLE_STATIC_LIBRARIES := libstlport_static include $(BUILD_SHARED_LIBRARY)

标签: android android-ndk


【解决方案1】:

您的 Android.mk 构建了两个共享库,但没有声明它们之间的依赖关系。您可能想要使用以下内容:

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS)
LOCAL_MODULE := PrincipalEncoder 
LOCAL_SRC_FILES := PrincipalEncoder.cpp
LOCAL_LDLIBS := -lGLESv1_CM -llog 
LOCAL_SHARED_LIBRARIES := avlib
include $(BUILD_SHARED_LIBRARY) 

include $(CLEAR_VARS) 
LOCAL_MODULE := avlib
LOCAL_SRC_FILES := avilib.c
include $(BUILD_SHARED_LIBRARY) 

【讨论】:

    猜你喜欢
    • 2013-01-16
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 2015-01-14
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多