我对makefile非常陌生。我之前做过的最复杂的任务是在已经设计好的 makefile 中包含新的 .h 和 .cpp 或 .c。
我必须将项目的编译过程从 Visual Studio 移植到 gcc,并且已经有一个同事为此编写的解决方案,但他使用 4 个 bash 脚本和一个 makefile 来编译解决方案。
我没有这样做,而是在寻找使其更易于维护的解决方案。我承认我的问题可能非常愚蠢,但我无法在任何地方找到它,也无法正确理解它。
在下面的目标中:
$(OBJECTS): %.o: %.cpp
$(CC) $(CPPFLAGS) -c $< -o $@
我想测试正在创建的 .o 是否已经存在并将其重命名为其他名称。这是必要的,因为在项目中有几个同名但内容不同的源文件。
例如,如果当前正在编译的 .cpp 名为 file.cpp 并且将生成的对象是 file.o,则该规则应测试 file.o 是否已存在并将当前 file.o 重命名为其他名称。
如果您知道任何解释这一点的好教程,请告诉我。我发现了很多示例,这些示例显示了如何对按该规则编译的当前文件进行测试,但没有一个示例会重命名对象 .o。
在此先感谢您对此处写的任何“愚蠢”表示歉意。:-)