gpt4 book ai didi

c++ - C++程序如何获得debug/release条件编译

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:37 27 4
gpt4 key购买 nike

在大型 C++/Qt/QMake/qtcreator 项目中,我想执行一些测试,但仅当我使用调试标志进行编译时。

有没有办法告诉 g++ 代码的某些小部分只能在 Debug模式下编译?

最佳答案

执行此操作的标准方法是依赖宏 NDEBUG , 由宏 assert() 使用在 <cassert> 中定义:

#ifdef NDEBUG
// release mode code
#else
// debug mode code
#endif

#ifdef 的反义词是#ifndef ,当然还有 #else分支是可选的。

如果此宏不起作用(无论出于何种原因),您

  1. 可以试试宏QT_NO_DEBUG , Qt 将其用于与 Q_ASSERT() 类似的目的;和

  2. 应该修复它以便 NDEBUG被(未)正确定义; <cassert> 需要它才能正常工作,您使用的代码可能取决于它。

关于c++ - C++程序如何获得debug/release条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22537251/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com