2016-09-18 53 views
-2

我有以下文件夹结构包括多个目录和文件的Makefile

   test(current directory which has the makefile) 
           | 
         ---------------------- 
         |      | 
      source_files     header_files 
    (has all .c files)     (has all .h files) 

我需要另一个Makefile文件(称之为Makefile2)在列出所有这些来源的同一目录下。如何告诉Makefile2查找source_files文件夹中的所有.c文件,并在header_files文件夹中查找头文件。另外我将如何能够在我的原始Makefile中引用这些文件。 (注意:我不能使用通配符,而只使用实际的文件名)。任何帮助,将不胜感激。

+0

你是什么意思,你不能使用通配符?你的意思是shell通配符,还是做通配符,或者两者兼而有之?你的操作系统是否有类似于unix'find'命令的东西(如果可以,你可以使用它)? – Beta

+0

@Beta我不能使用shell命令进行通配符搜索。我需要将文件列表添加到makefile2,然后在原始makefile中使用它们。 – user2808264

回答

1

的制作wildcard function

SOURCES := $(wildcard source_files/*.c) 

注意,这是一个通配符功能,而不是一个shell命令。把它放在makefile2,然后在makefile地说:

include makefile2 

然后你就可以使用变量SOURCES。 (您也可以使用HEADERS。)

+0

我尝试了你的建议,但似乎并不奏效我编辑了这个问题以包含我的完整代码(如果有帮助的话)。 – user2808264

+1

@ user2808264定义“似乎不起作用”。 – user657267

+0

@ user2808264:你似乎已经添加了,然后删除了你的代码,也许当你发现你的错字。你已经在这里足够长的时间来了解[最小完整示例](http://stackoverflow.com/help/mcve);你的'makefile'远比测试这个解决方案时要复杂得多。 – Beta

相关问题