使用GCC make管理调试和发布构建
Managing debug and release builds with GCC make
我正在尝试管理同一应用程序的两个不同构建。我有两个独立的make文件,一个用于调试,另一个用于发布,它们都使用相同的源代码。我还有wrapper.bat文件,其中包含要传递给make的参数等。这件事的全部意义在于,我希望能够同时保留我的对象文件,这样可以减少编译时间。
我尝试将对象文件的扩展名更改为.od
(而不是通常的.o
),但make不太喜欢。我不知道如何将这些对象放在一个单独的目录中,或者可能在文件名后面附加一个d。
这通常是如何实现的?
Make有用于构建.o
文件和各种其他类型文件的内置规则。但是,如果你想让它用一个不同的非标准扩展来构建目标,你必须自己创建这个规则:它不会是内置的。
幸运的是,这很琐碎。要创建一个从.cpp
文件构建.od
文件的规则(例如),您只需编写:
%.od : %.cpp
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEBUG_CXXFLAGS) -o $@ -c $<
我在这里添加了DEBUG_CFLAGS
,但你可以使用任何你喜欢的东西。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 无法在 CLion 中构建 C++ 项目
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用ndk-build.cmd构建Android.so文件
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 无法使用Qt Creator在Windows中构建yaml-cpp
- 构建一个由C和C++文件组成的库
- llvm构建器向基本块添加终止符
- FLTK 2.0构建和演示,适用于VS2019的2011年左右的代码库
- 如何跨平台将二进制资源构建到程序中?
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 如何解决 Ninja c++ 构建和执行问题
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- CMake WxWidgets项目成功地在Linux上构建,但没有在Windows上构建
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 用CMake构建C++协议
- 通过增强构建构建Python扩展