如何在 Xcode Profiling and Archiving Builds 中设置 DEBUG 和 NDEBUG 宏?

Posted

技术标签:

【中文标题】如何在 Xcode Profiling and Archiving Builds 中设置 DEBUG 和 NDEBUG 宏?【英文标题】:Howto set DEBUG & NDEBUG macros in Xcode Profiling and Archiving Builds? 【发布时间】:2012-05-28 23:54:33 【问题描述】:

在 Xcode(当前版本 4.3.2)中,我为调试和发布版本设置了 DEBUG 和 NDEBUG 宏定义,因此我可以选择性地使用 ObjC 预处理器包含调试代码。

问题:当我选择 Product --> Build For --> Archiving 时,既没有定义 DEBUG 也没有定义 NDEBUG。我对 Product --> Build For --> Profiling 有类似的问题。

问题:如何在 xcode 中为存档和分析构建正确设置 DEBUG 和 NDEBUG,这样我的条件代码包含(预处理器)宏不会中断?

我目前在发送到 AppStore 之前存档构建的解决方法是暂时删除 DEBUG 代码;但这不是一个好习惯,即使我受到 git 的源版本控制系统的保护。

【问题讨论】:

【参考方案1】:

尝试将您的定义添加到

"Preprocessor Macros Not Used in Precompiled Headers"

改为

"Preprocessor Macros"

【讨论】:

【参考方案2】:

检查构建设置以确保在调试和发布模式下都定义了宏。

例如: - 对于调试模式:NDEBUG=0 和 DEBUG=1 - 对于发布模式:NDEBUG=1 和 DEBUG=0

【讨论】:

这很糟糕,因为两者都会被定义。如果您“#define DEBUG=0”,“#if DEBUG”将返回 FALSE,但“#ifdef DEBUG”将始终返回 TRUE,因为它已定义,无论它具有什么值。

以上是关于如何在 Xcode Profiling and Archiving Builds 中设置 DEBUG 和 NDEBUG 宏?的主要内容,如果未能解决你的问题,请参考以下文章

Reducing and Profiling GPU Memory Usage in Keras with TensorFlow Backend

Deep Protein Methylation Profiling by Combined Chemical and Immunoaffinity Approaches Reveals Novel

如何使用gprof对软件做profiling

Proteomic Profiling of Paired Interstitial Fluids Reveals Dysregulated Pathways and Salivary NID1 as

如何使用oprofile对软件做profiling

如何从 xcode 构建 .ipa 并将其安装在 iphone 上?