2012-04-02 72 views
5

我有这样的结构:如何在子目录中使用源文件编写Android.mk文件?

folder1 

     |--subfolder1 

      |--.cpp files .h files 

     |--other .cpp files 

folder1中包含cpp文件和子文件夹1其中还包含cpp文件和程序的头文件

我会怎么写我的Android.mk文件,以便所有的源文件,包括子文件夹1中的那些将在编译期间包含在内?

我试图

LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/\*/\*.*) $(wildcard *.*) 

,但它不能正常工作,它没有包括作为子目录

+0

这是已经解决了。我怎样才能解决这个问题?或关闭此线程?对不起,我是新来的。 – Coola 2012-04-02 11:45:31

+1

[Android.mk文件 - 包括不同文件夹和子文件夹中的所有源文件]的可能重复(http://stackoverflow.com/questions/9970082/android-mk-file-including-all-source-files-in-different -folders-and-subfolders) – richq 2012-04-04 08:01:24

回答

3

试试里面的源文件:

LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*/*.cpp) 
+2

给出一个理由,而不仅仅是一个答案。 – 2012-10-16 15:40:11

+0

$(通配符$(LOCAL_PATH)/ */*。cpp)会将所有以.cpp结尾的文件放到文件夹中:$(LOCAL_PATH)/ * /; – medazzo 2012-11-06 15:03:27

4

这可能会有帮助。 报价:

如果你想在子目录定义Android.mk文件,你应该 包括他们明确在顶级Android.mk。甚至有 一个辅助函数来做到这一点,即使用:

包括$(称之为全子目录,makefile文件)

这将包括在当前构建文件的路径的子目录中的所有文件Android.mk 。

从android-ndk-r8d文档复制。

这意味着你应该写一个Android.mk文件来描述在每个子目录您的.cpp,谱写顶级Android.mk通过将它们包括“包括$(称之为全子目录-makefile文件)”

现在它可能是这样的:

|-jni 

|----Android.mk (top level one) 

|--------subfolder1 

|------------Android.mk (to describe your a.cpp) 

|------------a.cpp/a.h 

|----other .cpp/.h files 
相关问题