如何使用GCC的I-flag包含多个文件夹?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用GCC的I-flag包含多个文件夹?相关的知识,希望对你有一定的参考价值。

通常我使用GCC I-flag以这种方式包含文件夹:

gcc main.c -IfolderA -IfolderB

好吧,我需要重新组织我的makefiels结构,我正在考虑有一个环境变量,定义如下:

INCLUDES="folderA folderB"

我怎么能使用GCC I-flag来包含这两个文件夹?

我想到了这样的东西(但它不起作用):

gcc main.c -I($(INCLUDES))
答案

您需要将-I标志添加到INCLUDES变量的所有“元素”中。也许通过这样的事情:

gcc main.c $(foreach dir,$(INCLUDES),-I$(dir))

The foreach function

另一答案

您也可以使用addprefix function - 尽管它的设计目的是处理文件名,但它仍然可以在这里使用:

gcc main.c $(addprefix -I,$(INCLUDES))

以上是关于如何使用GCC的I-flag包含多个文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

GCC 编译的静态库包含啥?

如何解决gcc编译c程序找不到头文件的问题

如何指定GCC的默认头文件路径

gcc编译器使用简明指南 (特别是多个文件如何进行编译)

什么是 GCC 默认包含目录?

GCC - 多个预编译头文件和特定路径