问题标签 [conditional-compilation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
777 浏览

architecture - XCode 3:根据架构(cpu 类型)链接不同的库

编辑:这个问题可能很旧,它与 xcode 3 有关。

我正在开发一个需要 voip 支持的 iPhone 应用程序,所以我添加了 ARM 版本的pjsip 库。但如果我使用的是 iPhone 模拟器,我想链接 i386 版本的库。我怎样才能做到这一点?

0 投票
6 回答
5914 浏览

delphi - 为 Delphi 生成单元依赖项的工具

考虑到条件编译指令,是否有任何工具可以为 Delphi 单元生成依赖关系图。我想强调的是,这应该是单元依赖关系图,而不是类依赖关系。此外,如果能够在生成的图表中重新排列和隐藏某些部分,那就太好了。

我试过理解,它似乎没有做我想做的事。

0 投票
1 回答
1278 浏览

java - GWT - 基于浏览器的条件编译

有没有办法告诉 GWT 为每个目标浏览器编译不同的 Java 代码?

如今,GWT 为每个目标浏览器创建了不同的脚本,所有脚本都是从同一个源文件生成的。但是,在不同浏览器中使用非标准功能时(例如,文件拖放到浏览器中),不同浏览器之间的支持差异很大,需要编写不同的代码。

有没有类似的东西

等等

0 投票
4 回答
22863 浏览

iphone - 哪个条件编译用于在 Mac 和 iPhone 特定代码之间切换?

我正在开发一个包含共享代码的 Mac 应用程序和 iPad 应用程序的项目。如何使用条件编译开关从 iPhone 项目中排除特定于 Mac 的代码,反之亦然?我注意到TARGET_OS_IPHONEandTARGET_OS_MAC都是 1,所以它们总是正确的。是否有另一个我可以使用的开关,它只会在为特定目标编译时返回 true?

在大多数情况下,我已经通过移动#include <UIKit/UIKit.h>#include <Cocoa/Cocoa.h>进入两个项目的预编译头文件来使文件进行协作。我正在共享模型和一些从 RSS 提要和 Evernote 获取数据的实用程序代码。

特别是,与[NSData dataWithContentsOfURL:options:error:]iOS 4 和 Mac OS 10.6 相比,该函数为选项参数 iOS 3.2 和更早版本以及 Mac OS 10.5 和更早版本采用不同的常量。我使用的条件是:

#if (TARGET_OS_IPHONE && (__IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_3_2)) || (TARGET_OS_MAC && (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5))

这似乎可行,但我想确保这是防弹的。我的理解是,如果 Mac 版本设置为 10.6,而 iOS 版本设置为 3.2,即使是为 iOS 3.2 编译,它仍然会使用新的常量,这似乎不正确。

提前感谢您的帮助!

0 投票
1 回答
347 浏览

c# - 有条件地编译 UI 组件和逻辑

我正在考虑制作一些功能受限的应用程序版本,并且我想省略更简单版本中不需要的代码。作为 WinForms 应用程序,UI 必须针对每个版本进行更改 - 不显示受限控件。

我尝试使用条件编译语句来注释自动生成的控件和布局代码的一部分,但我发现一旦我通过 WinForms 设计器触摸任何东西,VS 就会抛出我所有的代码。

我希望能够有条件地编译一些事件处理程序和 UI 控件。我可以在设计器文件之外编写条件 UI 代码,但是我将无法使用 VS 设计器来编辑我的应用程序。是否有任何建议来解决这种情况 - 即有条件地编译 UI 控件并仍然显示它们在设计师?

谢谢!

0 投票
3 回答
252 浏览

preprocessor - 检测 Bada OS 上的编译

我想做类似的事情#ifdef __linux__,但使用 bada SDK。默认情况下是否定义了一个常量?另外,我可以检测到我何时为模拟器编译?

0 投票
6 回答
279 浏览

c - 这些用于可移植性的 C #ifdef 是否已过时?

我正在使用仍然有一些尘土飞扬的角落的旧 C 代码。我发现很多关于#ifdef操作系统、体系结构等的陈述,并为了可移植性而改变了代码。我不知道这些陈述中有多少在今天仍然适用。

我知道#ifdef在某些情况下这不是最好的主意,我一定会解决这个问题,但我在这里感兴趣的是正在测试的内容。

我在下面列出了它们。如果您能告诉我它们中的任何一个在当今时代是否绝对有用,或者它们所关联的机器或操作系统是否早已过期,那就太好了。另外,如果您知道这些的任何中心参考资料,我很想听听。

在此先感谢,罗斯

0 投票
5 回答
5039 浏览

delphi - Delphi {$IFDEF CONSOLE} 问题

我刚试过

并希望beep在运行时听到 a,但不是。但是,以下测试有效:

为什么编译时测试不起作用?据我从这个文档中了解到的,它肯定可以工作。

0 投票
1 回答
169 浏览

iphone - iphone 有人可以向我解释一下#ifdef 在这里做什么吗?

有人可以解释一下#ifdef..#else..#endif 在这段代码中的作用吗?它来自一个开源的 iphone twitter 客户端。

0 投票
1 回答
2300 浏览

xcode - Xcode 多个目标——#ifdef 运行超过

我有一个包含七个目标的 Xcode 项目,对应于七个 iPhone 应用程序。这个数字可能会增加。许多目标使用许多相同的类。

我在下面复制了部分应用程序委托。出于本文的目的,我已将目标 target1 重命名为 target7。我已经设置了相应的宏 mTarget1 到 mTarget7。此外,我还有 mTarget12 等宏,它是为目标 1 和 2 定义的。

应用程序委托中的 ifdef 正在迅速积累。为了说明问题,我在下面展示了应用程序委托的部分内容。

从好的方面来说,积累似乎确实是累加的——它们没有成倍增加,至少现在还没有。同样从好的方面来说,除了应用程序委托之外的文件中的#ifdef 远没有那么糟糕。

在不太亮的一面,应用程序委托中有大量的积累。

我想知道是否有更好的方法来组织这个。我应该补充一点,我不认为单独的 Xcode 项目是一种选择——它会比我现在拥有的更糟糕。