問題タブ [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.
c++ - limits.h の条件付きコンパイル ステートメント
ファイル limits.h の次のステートメントを理解できません。このステートメントは何に使用され、何を達成しますか?
webforms - aspx ページで #if DEBUG 条件付きコンパイル ステートメントを使用する
aspxページで次のようなことをしようとしています:
「プリプロセッサ ディレクティブは、行の最初の非空白文字として表示する必要があります」というエラーが表示されます。これどうやってするの?
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 == 30000
trueになります。
どんな助けでも大歓迎です。
よろしく、ヨッヘン
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 を回避することも発見しました。
debugging - #ifdef with gfortran 77
gfortranを使用してFORTRAN77をコンパイルしており、プリプロセッサディレクティブ#ifdefを使用してDEBUGビルドオプションを使用したいと考えています。ただし、それらを使用すると、コンパイル時に「不正なプリプロセッサディレクティブ」という警告が表示されます。標準のツールチェーンから逸脱することなく、この機能を使用することは可能ですか?
c# - C#での条件付きコンパイルハッカリー-これを実現する方法はありますか?
コンパイルされたDLLとして他の人がプロジェクトで参照してほしい内部APIがあります。参照されるスタンドアロンプロジェクトの場合、条件付きコンパイル(#ifステートメント)を使用して、コンパイルシンボルに応じて主要なWebサービスクラスの動作を切り替えます。問題は、アセンブリが生成されると、最初にコンパイルされたときのコンパイルシンボルにロックされているように見えることです。たとえば、このアセンブリがDEBUGでコンパイルされ、別のプロジェクトによって参照されている場合、他のプロジェクトがRELEASEとしてビルドされた場合でも、アセンブリは再コンパイルの必要がないため、DEBUGにあるかのように動作します。それは理にかなっています、ただいくつかの背景を与えるだけです。
今、私はそれを回避しようとしています。これにより、app / web構成ファイルをスキャンしてスイッチを探すなど、他の方法でアセンブリの動作を切り替えることができます。問題は、私が切り替えていたアセンブリのコードの一部がメソッドの属性であるということです。たとえば、次のようになります。
同じタイプの2つの属性を別の方法で切り替えることができる構文糖衣があるかもしれませんが、私にはわかりません。何か案は?
別の方法は、アセンブリではなくプロジェクト全体を参照することですが、可能であれば、コンパイルされたDLLを参照するだけにしておきたいと思います。それが必要な場合、私は問題を解決するためのまったく新しいアプローチにも完全にオープンです。
c# - OSのバージョンに基づいて条件付きコンパイルシンボルを作成する簡単な方法はC#にありますか?
WindowsOSのバージョンに基づいて条件付きでコンパイルする必要のある単体テストがたくさんあります。この単体テストは、WindowsVista以降でのみ使用可能なTxFをテストしています。
linux - linux/unixおよびmakefiles
Linuxのmakefileの場合:
コンパイルが成功した場合にのみ出力プログラムを実行したい。
これを行う方法はありますか?
c# - 条件付きコンパイルシンボルに応じてexeの名前を変更します
特定の条件付きコンパイルシンボルが設定されているかどうかに応じて、異なる名前のexeファイルを出力するようにVisual Studioに指示できますか?
javascript - Javascript:IE7かどうかに基づいて変更
ブラウザがIE7であるかどうかに基づいて、JavaScriptコードの行を変更したいと思います。他のブラウザのコードは次のとおりです。
IE7の場合、display="inline"が必要です。
条件付きコンパイルを試みましたが(これにより、ブラウザーを検出する方法がわかりました)、機能しませんでした。
どんな助けでも大歓迎です!
編集:私はJQueryを使用していません。