使用GCC make管理调试和发布构建

Managing debug and release builds with GCC make

本文关键字:布构建 构建 GCC make 管理 调试 使用      更新时间:2023-10-16

我正在尝试管理同一应用程序的两个不同构建。我有两个独立的make文件,一个用于调试,另一个用于发布,它们都使用相同的源代码。我还有wrapper.bat文件,其中包含要传递给make的参数等。这件事的全部意义在于,我希望能够同时保留我的对象文件,这样可以减少编译时间。

我尝试将对象文件的扩展名更改为.od(而不是通常的.o),但make不太喜欢。我不知道如何将这些对象放在一个单独的目录中,或者可能在文件名后面附加一个d。

这通常是如何实现的?

Make有用于构建.o文件和各种其他类型文件的内置规则。但是,如果你想让它用一个不同的非标准扩展来构建目标,你必须自己创建这个规则:它不会是内置的。

幸运的是,这很琐碎。要创建一个从.cpp文件构建.od文件的规则(例如),您只需编写:

%.od : %.cpp
        $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEBUG_CXXFLAGS) -o $@ -c $<

我在这里添加了DEBUG_CFLAGS,但你可以使用任何你喜欢的东西。