我在Windows上使用Android NDK和带有Eclipse的cygwin。 在我的makefile中,我想在eclipse中使用环境变量设置prebuild库的路径。 所以我做了以下几点:
在makefile中:
LOCAL_SRC_FILES = $(QCAR_SDK_ROOT)build/lib/$(TARGET_ARCH_ABI)/libQCAR.so
LOCAL_EXPORT_C_INCLUDES := $(QCAR_SDK_ROOT)build/include
但我得到错误:
Android NDK: ERROR:jni/Android.mk:QCAR-prebuilt: LOCAL_SRC_FILES points to a missing file
/cygdrive/d/Development/Android/android-ndk-r7/build/core/prebuilt-library.mk:43: *** Android NDK: Aborting . Stop.
make: *** [all] Error 2
Android NDK: Check that jni//cygdrive/D/Development/Android/qcar-android-1-5-4-beta1/build/lib/armeabi/libQCAR.so exists or that its path is correct
直接尝试在makefile中定义变量,得到了相同的结果。
显然,那条道路不是我想要的。如何设置正确的路径?答案 0 :(得分:1)
为什么不在make文件中指定路径? (N.B刚刚注意到你试过了。)
此站点似乎表明make文件无法在Eclipse中正确运行,您应该通过Windows资源管理器运行。你在Eclipse中运行吗?试试这个,看看你是否还有问题。
答案 1 :(得分:1)
这是谷歌使用NDK-9修复的先前NDK版本的问题。 “更新了ndk-build以支持LOCAL_SRC_FILES中的绝对路径。”
请参阅此处的发行说明:http://developer.android.com/tools/sdk/ndk/index.html
答案 2 :(得分:0)
尝试使用LOCAL_PATH
变量。作为文档(Android NDK包中的docs/ANDROID-MK.html
或here)声明:
LOCAL_SRC_FILES
这是将为您的模块构建的源文件列表。 仅列出将传递给编译器的文件,因为 构建系统会自动为您计算依赖关系。
请注意,源文件名称都是相对于
LOCAL_PATH
和。{ 你可以使用路径组件
此外,NDK提示您Check that jni//cygdrive/D/Development/Android/qcar-android-1-5-4-beta1/build/lib/armeabi/libQCAR.so exists or that its path is correct
。
因此,我会尝试以下方法:
LOCAL_PATH := /
...或根本重置它:
LOCAL_PATH :=
答案 3 :(得分:0)
您可以修改eclipse.ini
文件并将其添加到那里。
e.g。 -DLOCAL_SRC_FILES=/home/user/.../
或宣布path variable。这是在工作区内的多个项目之间共享公共位置的便捷方式。
希望能帮到你!
答案 4 :(得分:0)
Windows上的最新NDK版本不需要cygwin。更糟糕的是,他们不承认cygdrive符号。你可以简单地使用
QCAR_SDK_ROOT = D:/Development/Android/qcar-android-1-5-4-beta1
更正 LOCAL_SRC_FILES的绝对路径对ndk.r7不起作用,即使对于r9,ANDROID-MK.doc也不鼓励使用绝对路径。