【问题标题】:LOCAL_SRC_FILES points to a missing fileLOCAL_SRC_FILES 指向丢失的文件
【发布时间】:2012-09-07 07:09:42
【问题描述】:

我正在做一个增强现实程序。我被交给了这个项目,我是 cygwin 和 android 编程的新手。我必须使用 cygwin 来编译我的一个 cpp 文件。但是,当我在 cygwin 上进行 ndk-build 时,会出现此错误:

$ ndk-build
Android NDK: ERROR:/cygdrive/c/project/jni/Android.mk:QCAR-prebuilt: LOCAL_SRC_FILES points to a missing file   
Android NDK: Check that /cygdrive/c/project/jni//../../../build/lib/armeabi/libQCAR.so exists  or that its path is correct
/cygdrive/c/android-ndk-r8b/build/core/prebuilt-library.mk:43: *** Android NDK: Aborting    .  Stop.

这是我的 android.mk 代码:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := QCAR-prebuilt
LOCAL_SRC_FILES = /../../../build/lib/$(TARGET_ARCH_ABI)/libQCAR.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../build/include
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)

LOCAL_MODULE := ImageTargets
# The TARGET_PLATFORM defines the targetted Android Platform API level
TARGET_PLATFORM := android-5
# This variable determines the OpenGL ES API version to use:
# If set to true, OpenGL ES 1.1 is used, otherwise OpenGL ES 2.0.
USE_OPENGL_ES_1_1 := false
# Set OpenGL ES version-specific settings.
ifeq ($(USE_OPENGL_ES_1_1), true)
    OPENGLES_LIB  := -lGLESv1_CM
    OPENGLES_DEF  := -DUSE_OPENGL_ES_1_1
else
    OPENGLES_LIB  := -lGLESv2
    OPENGLES_DEF  := -DUSE_OPENGL_ES_2_0
endif

LOCAL_CFLAGS := -Wno-write-strings $(OPENGLES_DEF)

LOCAL_LDLIBS := \
    -llog $(OPENGLES_LIB)



LOCAL_SHARED_LIBRARIES := QCAR-prebuilt

LOCAL_SRC_FILES := ImageTargets.cpp SampleUtils.cpp Texture.cpp

LOCAL_ARM_MODE := arm

include $(BUILD_SHARED_LIBRARY)**

我不是编程专家,所以我需要一些指导。

【问题讨论】:

  • 出于兴趣,您是如何解决问题的
  • 我也面临同样的问题。请在“答案”部分写下解决方案并接受。
  • 嗨,CtheW,您能告诉我们您是如何解决问题的吗?
  • 请发表你解决问题的方法

标签: java eclipse cygwin unix-ar


【解决方案1】:

遇到同样的问题,尝试了多个路径,但效果很好。最终解决了这个问题,只需将示例项目复制到 Development\Android\vuforia-sdk-android-2-0-30\samples 文件夹中,然后通过 cygwin 执行 ndk-build。希望对您有所帮助:-)

【讨论】:

  • +1。在samples 文件夹中有Readme.txt 带有文本Please download the sample apps at https://developer.vuforia.com/resources/sample-apps and unpack them in this folder 的文件。
  • 该解决方案可能适用于这种情况,但与上述问题甚至没有密切关系:(
【解决方案2】:

显然,默认Android.mk 假定ImageTargets 文件夹位于../vuforia-sdk-android-x-x-xx/samples/ImageTargets-x-x-x,但在我下载样本并将它们解压缩到样本目录后,位置如下:../vuforia-sdk-android-x-x-xx/samples/vuforia-sampleapps-android-x-x-xx/ImageTargets-x-x-x。所以原来有一个额外的子目录,这就是构建失败的原因。为了让它工作,我编辑了Android.mk如下:

LOCAL_SRC_FILES = /../../../build/lib/$(TARGET_ARCH_ABI)/libQCAR.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../build/include

应该改为

LOCAL_SRC_FILES = /../../../../build/lib/$(TARGET_ARCH_ABI)/libQCAR.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../../build/include 

,其中额外的一组/.. 负责处理该额外的子文件夹。这个解决方案对我有用。

【讨论】:

    【解决方案3】:

    第 1 步:将示例复制到 C:\Development\Android\vuforia-sdk-android-2-0-31\samples

    第二步:打开命令提示符

    编写命令 1:cd C:\Development\Android\vuforia-sdk-android-2-0-31\samples\ImageTargets-2-0-7

    编写命令 2:ndk-build

    第 3 步:将项目导入 Eclipse

    第 4 步:https://developer.vuforia.com/resources/dev-guide/step-3-compiling-running-vuforia-sample-app

    所以构建成功。不要忘记在环境变量中设置ndk的路径。

    【讨论】:

      【解决方案4】:

      我遇到了类似的问题,我将变量 NDK_TOOLCHAIN_VERSION 设置为 r9,而它必须是 4.8 或 4.4。我将其更改为 4.8 并且可以正常工作。

      PS:检查丢失的文件是否确实存在会有所帮助。

      【讨论】:

        【解决方案5】:

        只是为工作解决方案列表做出贡献,以防万一上述所有方法都不起作用。

        在我的例子中,原来我的路径中有一个空格。 Cygwin 非常不喜欢路径中的空格。删除路径中的空格解决了这个问题。

        作为提示,您可能希望将您的工作目录放在类似C:\projects\MyNativeProject 的路径中,并将您的 Android SDK 和 NDK 放在不带空格的路径中。

        【讨论】:

          【解决方案6】:

          我想添加我的 2c,以防万一它帮助一些可怜的灵魂。就我而言,ndk 不喜欢前导反斜杠。即从

          更改
          LOCAL_SRC_FILES := /foo/foo.so
          

          LOCAL_SRC_FILES := foo/foo.so
          

          解决了我的问题。

          【讨论】:

            【解决方案7】:

            使用相对目录路径适用于 Mac:

            -LOCAL_SRC_FILES := $(LOCAL_PATH)/lib/$(ARCH_PATH)/lib.so
            +LOCAL_SRC_FILES := ./lib/$(ARCH_PATH)/lib.so
            

            【讨论】:

              猜你喜欢
              • 2018-01-21
              • 2012-09-22
              • 2016-08-23
              • 2018-01-28
              • 2015-12-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-12-23
              相关资源
              最近更新 更多