问题标签 [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 投票
2 回答
293 浏览

c++ - limits.h 中的条件编译语句

我无法从文件 limits.h 中理解以下语句。这个语句有什么用,它有什么作用?

0 投票
2 回答
3561 浏览

webforms - 在aspx页面中使用#if DEBUG条件编译语句

我正在尝试在 aspx 页面中执行以下操作:

我收到一个错误“预处理器指令必须作为行上的第一个非空白字符出现”。我怎样才能做到这一点?

0 投票
1 回答
665 浏览

iphone - 如何找出条件编译的 iPhone SDK 的确切版本?

我正在寻找一个宏,它指定了用于编译的 iPhone SDK 的确切版本。这是必需的,因为在使用(并且仅使用)SDK 3.0 进行编译时,我需要添加一些额外的代码。

__IPHONE_OS_VERSION_MIN_REQUIRED这里不是正确的选择,因为它可以由用户使用参数设置-mmacosx-version-min。例如,用户可以在 SDK 3.1 中使用最低版本进行编译,因此即使用户使用 SDK 3.1 进行编译,-mmacosx-version-min=3.0检查也会为真。__IPHONE_OS_VERSION_MIN_REQUIRED == 30000

任何帮助表示赞赏。

问候, 约臣

0 投票
2 回答
2450 浏览

haskell - Haskell 中的 CPP 扩展和多行文字

是否可以在包含多行字符串文字的 Haskell 代码上使用 CPP 扩展?Haskell 还有其他条件编译技术吗?

例如,让我们看这段代码:

如果我取消注释{-# LANGUAGE CPP #-},则 GHC 会以词法错误驳斥此代码:

使用 GHC 6.12.1,cpphs 可用。

我确认使用cpphs.compat包装器和-pgmP cpphs.compat选项会有所帮助,但我希望有一个不依赖于自定义 shell 脚本的解决方案。-pgmP cpphs不起作用。

PS 我需要为 GHC < 6.12 和 GHC >= 6.12 使用不同的代码,没有预处理器可以吗?

升级版。除了 Ganesh 接受的答案之外,我还发现另一种解决方法是将所有条件声明放在一个单独的模块中{-# LANGUAGE CPP #-},从而避免在具有多行字符串的模块中使用 CPP。

0 投票
2 回答
4283 浏览

debugging - #ifdef 与 gfortran 77

我正在使用 gfortran 编译 FORTRAN 77,并希望通过使用预处理器指令 #ifdef 来获得调试构建选项。但是,当我使用它们时,我会收到编译时警告“非法预处理器指令”。是否可以在不偏离标准工具链的情况下拥有此功能?

0 投票
3 回答
859 浏览

c# - C# 中的条件编译hackery - 有没有办法解决这个问题?

我有一个内部 API,我希望其他人在他们的项目中将其作为已编译的 DLL 引用。当它是引用的独立项目时,我使用条件编译(#if 语句)根据编译符号切换关键 Web 服务类的行为。问题是,一旦生成了一个程序集,它似乎被锁定在最初编译时的任何编译符号中 - 例如,如果这个程序集是用 DEBUG 编译的并且被另一个项目引用,即使另一个项目是作为 RELEASE 构建,程序集仍然像在 DEBUG 中一样运行,因为它不需要重新编译。这是有道理的,只是提供一些背景。

现在我正在尝试解决这个问题,以便可以通过其他方式切换程序集的行为,例如扫描 app/web 配置文件中的开关。问题是,我在其中切换的一些程序集代码是方法的属性,例如:

虽然可能有一些语法糖允许我以另一种方式在相同类型的两个属性之间切换,但我不知道。有任何想法吗?

另一种方法是引用整个项目而不是程序集,但如果可以的话,我宁愿坚持只引用已编译的 DLL。如果需要的话,我也完全愿意采用一种全新的方法来解决问题。

0 投票
2 回答
2661 浏览

c# - Is there an easy way in C# to have conditional compilation symbols based on OS version

I have a bunch of unit tests that need to be conditional compiled based on Windows OS version. This unit tests are testing TxF that is only available in Windows Vista and above.

0 投票
4 回答
330 浏览

linux - linux/unix 和 makefile

在 linux make 文件中:
我只想在编译成功的情况下运行输出程序。

有没有办法做到这一点?

0 投票
4 回答
9942 浏览

c# - 根据条件编译符号更改exe的名称

您能否告诉 Visual Studio 根据是否设置了特定的条件编译符号来输出不同名称的 exe 文件?

0 投票
5 回答
274 浏览

javascript - Javascript:根据是否为 ​​IE7 进行更改

我想根据浏览器是否为 IE7 更改我的 javascript 代码行。以下是任何其他浏览器的代码:

对于 IE7,我想要 display = "inline"。

我尝试过条件编译(向我展示了如何检测浏览器),但它没有用:

任何帮助是极大的赞赏!

编辑:我没有使用 JQuery。