我有一个 Linux GNU C 项目,它需要为两个不同的硬件设备构建输出,使用一个通用的 C 源代码库,但使用不同的 makefile。目前我在同一个文件夹中有两个makefile,每个设备一个,当我对代码进行更改时,我必须先“make clean”来制作第一个模型,然后“make clean”来制作第二个模型. 这是因为它们使用不同的编译器和处理器。即使代码文件没有更改,我也必须为其他设备重新编译它。
我想做的是为第二个模型使用不同的文件夹,因此它存储 *.d 和 *.o 文件的单独副本。我不必“清理”,只需重新编译更改的源。我看过 makefile 语法,并且是 Linux 的新手,只能对这些东西的神秘性质摸不着头脑。
我正在考虑的一种方法是将 .c 和 .h 文件从 model_1 文件夹更新到 model_2 文件夹。有人可以为我提供一个简单的生成文件,它只会将较新的 *.c 和 *.h 文件从一个文件夹复制到另一个文件夹吗?
或者,必须有一种方法可以拥有一个公共源文件夹和单独的输出文件夹,因此不需要重复的源文件。任何帮助实现这一目标表示赞赏。如果您想查看它们,我可以提供 makefile。