我正在写一个放置在项目根目录中的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
可以帮助我,但我不明白他们的用法。
答案 0 :(得分:1)
标准方式,就像autotools一样,将在Makefile
目录中写src
,然后在主Makefile
调用中sub Makefile
:
programs:
make -C $(SOURCE_DIR) the_program
这种情况下,无论您是在主目录还是在src目录中,都可以构建程序。