GCC:编译不同文件夹中的文件

时间:2016-04-30 10:33:44

标签: c gcc makefile

我正在写一个放置在项目根目录中的Makefile

这是我的项目目录树:

project:
     Makefile
     README
     assets/
     build/
     src/

实际上在Makefile中,我在每个文件前面加上一个变量,告诉gcc在哪里找到文件:

gcc -c $(SOURCE_DIR)file.c

我想编译放置在目录.c中的src源文件,而不更改Makefile中的工作目录或将SOURCE_DIR添加到我自己的每个文件中必须编译。

有没有办法做到这一点?

P.S。我已阅读手册(man gcc)寻找一些gcc选项。我发现-L-l可以帮助我,但我不明白他们的用法。

1 个答案:

答案 0 :(得分:1)

标准方式,就像autotools一样,将在Makefile目录中写src,然后在主Makefile调用中sub Makefile

programs:
        make -C $(SOURCE_DIR) the_program

这种情况下,无论您是在主目录还是在src目录中,都可以构建程序。