LOCAL_SRC_FILES点到丢失的文件(LOCAL_SRC_FILES points to a

2019-09-22 10:10发布

我做的augemented真人秀节目。 有人递给我这个项目,并即时通讯新的cygwin和Android编程。 我必须用cygwin编译我的cpp文件之一。 然而,当我在Cygwin做NDK建造这个错误出来:

$ 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)**

我不是一个职业的规划,所以我想一些指导。

Answer 1:

有同样的问题,尝试了多条路径,但力的工作。 最后,通过简单地复制在发展\ Android的\示例项目vuforia-SDK-Android的2-0-30 \ Samples文件夹,然后通过执行cygwin的NDK,建立解决它的问题。 希望帮助:-)



Answer 2:

显然,默认Android.mk中假设ImageTargets文件夹位于../vuforia-sdk-android-xx-xx/samples/ImageTargets-xxx ,但之后,我已经下载了样品,并将其提取到的样本目录,位置在以下: ../vuforia-sdk-android-xx-xx/samples/vuforia-sampleapps-android-xx-xx/ImageTargets-xxx 。 因此,原来,有一个额外的子目录,这就是为什么构建失败。 为了使它工作,我编辑的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 

,在另外一组/..采取额外的子文件夹的照顾。 该解决方案为我工作。



Answer 3:

步骤1:复制样品到C:\发展\的Android \ vuforia-SDK-机器人-2-0-31 \样品

步骤2:打开命令提示

写commnad 1:CD C:\开发\ Android的\ vuforia-SDK-Android的2-0-31 \ SAMPLES \ ImageTargets-2-0-7

写commnad 2:NDK建造

第3步:导入项目进入日食

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

所以成功打造。 不要忘了设置NDK的路径环境变量。



Answer 4:

我有类似的问题,我把变量NDK_TOOLCHAIN_VERSION为R9,但它必须是4.8或者4.4。 我把它改成4.8和它的工作。

PS:检查是否缺少的文件确实存在与否会有所帮助。



Answer 5:

只要有利于工作方案的名单,以防万一上述所有没有工作。

在我的情况下,原来,有在我的道路空间 。 Cygwin的不喜欢的路径空间非常多。 删除的空间在我的路径固定的问题。

作为小费,你可能希望你的工作目录中就像一个路径C:\projects\MyNativeProject和你的Android SDK和NDK的路径没有空格。



Answer 6:

我想补充我的2C,以防万一它可以帮助一些可怜的灵魂。 在我的情况下,NDK不喜欢领先的反斜杠。 即从改变

LOCAL_SRC_FILES := /foo/foo.so

LOCAL_SRC_FILES := foo/foo.so

解决了我的问题。



Answer 7:

使用相对路径目录在Mac:

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


文章来源: LOCAL_SRC_FILES points to a missing file