【问题标题】:ndk-build cannot find module with tag 'cxx-stl/system' in import pathndk-build 在导入路径中找不到标签为“cxx-stl/system”的模块
【发布时间】:2018-03-29 14:57:50
【问题描述】:

我是 Android 的新手,我正在尝试使用 Ubuntu 进行 android ndk 演示。

我运行 ndk-build 并得到以下结果。

andylee@ubuntu:~/Downloads/android-ndk-r11-linux-
x86_64.tar.bz2/sources/hello/jni$ ndk-build -C 
/home/andylee/Downloads/android-ndk-r11-linux-x86_64.tar.bz2/sources/hello
make: Entering directory '/home/andylee/Downloads/android-ndk-r11-linux-
x86_64.tar.bz2/sources/hello'
make: *** No rule to make target '/hello.c', needed by 
'obj/local/armeabi/objs/helloARM/hello.o'.  Stop.
make: Leaving directory '/home/andylee/Downloads/android-ndk-r11-linux-
x86_64.tar.bz2/sources/hello'

然后我删除另一个文件夹中的Android.mk(文件夹结构如下)并得到这个。

andylee@ubuntu:~$ ndk-build -C /home/andylee/Downloads/android-ndk-r11-
linux-x86_64.tar.bz2/sources/hello
make: Entering directory '/home/andylee/Downloads/android-ndk-r11-linux-
x86_64.tar.bz2/sources/hello'
Android NDK: : Cannot find module with tag 'cxx-stl/system' in import path    

Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined 
?    
Android NDK: The following directories were searched:    
Android NDK:         
/home/andylee/Downloads/android-ndk-r11-linux-
x86_64.tar.bz2/build/core/setup-toolchain.mk:213: *** Android NDK: Aborting.    
.  Stop.
make: Leaving directory '/home/andylee/Downloads/android-ndk-r11-linux-
x86_64.tar.bz2/sources/hello'

我的文件夹结构是这样的。

home/andylee/Downloads/android-ndk-r11-linux-x86_64.tar.bz2
  ndk-build
  /sources  
    /cxx-stl
        /system
           /Android.mk
    /hello
        /jni
           /hello.c
           /hello.h
           /Android.mk

jni 文件夹中的 Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := hello.c 
LOCAL_MODULE := helloARM 
LOCAL_CFLAGS += -pie -fPIE 
LOCAL_LDFLAGS += -pie -fPIE 
LOCAL_FORCE_STATIC_EXECUTABLE := true
include $(BUILD_EXECUTABLE)

你好.c

#include "hello.h"
int main(int argc, char *argv[]){
printf("Hello World!\n");
return 0;
}

你好.h

#ifndef HELLOHEADER_H_
#define HELLOHEADER_H_
#include <stdio.h>
#endif /*HELLOHEADER_H_*/

我想知道为什么 ndk 会找到带有标签 'cxx-stl/system' 的模块,我没有在 Android.mk 中导入任何模块。几个小时以来我一直对此感到沮丧,非常感谢您的帮助。

【问题讨论】:

  • 你试过用-B强制重建吗?
  • 我试过并得到同样的错误信息。

标签: android android-ndk android.mk


【解决方案1】:

当我从演示中复制这些代码时,似乎存在一些语法错误。更正错误后,我可以成功构建。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 2011-07-06
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多