問題タブ [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 - 条件付きコンパイル用のiPhoneSDKの正確なバージョンを見つける方法は?

コンパイルに使用したiPhoneSDKの正確なバージョンを指定するマクロを探しています。これが必要なのは、SDK 3.0で(そしてSDK 3.0でのみ)コンパイルするときに、コードを追加する必要があるためです。

__IPHONE_OS_VERSION_MIN_REQUIREDパラメータを使用してユーザーが設定できるため、ここでは正しい選択ではありません-mmacosx-version-min。たとえば、ユーザーはSDK 3.1のminバージョン-mmacosx-version-min=3.0でコンパイルできるため、ユーザーがSDK 3.1でコンパイルしている場合でも、のチェックは__IPHONE_OS_VERSION_MIN_REQUIRED == 30000trueになります。

どんな助けでも大歓迎です。

よろしく、ヨッヘン

0 投票する
2 に答える
2450 参照

haskell - Haskell の CPP 拡張と複数行リテラル

複数行の文字列リテラルを含むHaskellコードでCPP拡張を使用することは可能ですか? Haskell の他の条件付きコンパイル手法はありますか?

たとえば、次のコードを見てみましょう。

のコメントを外す{-# LANGUAGE CPP #-}と、GHC はこのコードを字句エラーで反駁します。

GHC 6.12.1 を使用すると、cpphs が利用可能になります。

cpphs.compatラッパーとオプションを使用すると-pgmP cpphs.compat役立つことは確認していますが、カスタム シェル スクリプトに依存しないソリューションが必要です。-pgmP cpphs動作しません。

PS GHC < 6.12 と GHC >= 6.12 では異なるコードを使用する必要があります。プリプロセッサなしで可能ですか?

UPD。Ganesh の受け入れられた回答に加えて、別の回避策として、すべての条件宣言を別{-# LANGUAGE CPP #-}のモジュールに配置し、複数行の文字列を含むモジュールで CPP を回避することも発見しました。

0 投票する
2 に答える
4283 参照

debugging - #ifdef with gfortran 77

gfortranを使用してFORTRAN77をコンパイルしており、プリプロセッサディレクティブ#ifdefを使用してDEBUGビルドオプションを使用したいと考えています。ただし、それらを使用すると、コンパイル時に「不正なプリプロセッサディレクティブ」という警告が表示されます。標準のツールチェーンから逸脱することなく、この機能を使用することは可能ですか?

0 投票する
3 に答える
859 参照

c# - C#での条件付きコンパイルハッカリー-これを実現する方法はありますか?

コンパイルされたDLLとして他の人がプロジェクトで参照してほしい内部APIがあります。参照されるスタンドアロンプ​​ロジェクトの場合、条件付きコンパイル(#ifステートメント)を使用して、コンパイルシンボルに応じて主要なWebサービスクラスの動作を切り替えます。問題は、アセンブリが生成されると、最初にコンパイルされたときのコンパイルシンボルにロックされているように見えることです。たとえば、このアセンブリがDEBUGでコンパイルされ、別のプロジェクトによって参照されている場合、他のプロジェクトがRELEASEとしてビルドされた場合でも、アセンブリは再コンパイルの必要がないため、DEBUGにあるかのように動作します。それは理にかなっています、ただいくつかの背景を与えるだけです。

今、私はそれを回避しようとしています。これにより、app / web構成ファイルをスキャンしてスイッチを探すなど、他の方法でアセンブリの動作を切り替えることができます。問題は、私が切り替えていたアセンブリのコードの一部がメソッドの属性であるということです。たとえば、次のようになります。

同じタイプの2つの属性を別の方法で切り替えることができる構文糖衣があるかもしれませんが、私にはわかりません。何か案は?

別の方法は、アセンブリではなくプロジェクト全体を参照することですが、可能であれば、コンパイルされたDLLを参照するだけにしておきたいと思います。それが必要な場合、私は問題を解決するためのまったく新しいアプローチにも完全にオープンです。

0 投票する
2 に答える
2661 参照

c# - OSのバージョンに基づいて条件付きコンパイルシンボルを作成する簡単な方法はC#にありますか?

WindowsOSのバージョンに基づいて条件付きでコンパイルする必要のある単体テストがたくさんあります。この単体テストは、WindowsVista以降でのみ使用可能なTxFをテストしています。

0 投票する
4 に答える
330 参照

linux - linux/unixおよびmakefiles

Linuxのmakefileの場合:
コンパイルが成功した場合にのみ出力プログラムを実行したい。

これを行う方法はありますか?

0 投票する
4 に答える
9942 参照

c# - 条件付きコンパイルシンボルに応じてexeの名前を変更します

特定の条件付きコンパイルシンボルが設定されているかどうかに応じて、異なる名前のexeファイルを出力するようにVisual Studioに指示できますか?

0 投票する
5 に答える
274 参照

javascript - Javascript:IE7かどうかに基づいて変更

ブラウザがIE7であるかどうかに基づいて、JavaScriptコードの行を変更したいと思います。他のブラウザのコードは次のとおりです。

IE7の場合、display="inline"が必要です。

条件付きコンパイルを試みましたが(これにより、ブラウザーを検出する方法がわかりました)、機能しませんでした。

どんな助けでも大歓迎です!

編集:私はJQueryを使用していません。