問題タブ [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 に答える
1740 参照

iphone - 制御するバージョンの#ifdefマクロ

マクロを使用してバージョンを変えていますが、正しく動作させることができません。私が使用した:

使用するバージョンに関係なく、常に1行のみと呼ばれます。そして、__IPHONE_4_0は常に定義されています。何か案は?

よろしく、ドミトリーM。

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

java - Java と ant を使用した条件付きコンパイル

私が取り組んでいるソフトウェアに問題があります。

JNA 経由で Wi​​ndows システム コールにアクセスしており、それらにアクセスできるように Windows 構造 (JNA 構造を拡張する Java クラス) を定義する必要があります。

アプリケーションは 32 ビットおよび 64 ビット アーキテクチャで動作する必要がありますが、構造体の問題は、システム アーキテクチャに基づいて属性が変化することです (たとえば、int から long へ)。

Antを使用してJavaで条件付きコンパイルa-la #ifdefを行う簡単な(そして正気の)方法はありますか? この種の条件 #ifdef を達成する他の方法はありますか?

私たちが検討しているもう 1 つの方法は、一般的なインターフェイスを作成し、32 ビットと 64 ビット用に 2 つの異なる構造を作成してから、if-else を使用して異なるケースを処理することです。

ありがとう。

0 投票する
1 に答える
1246 参照

c# - 条件付きデバッグ-それでもRELEASEコードにコンパイルされますか?

コードをDEBUGコードとしてマークすると、RELEASEモードでは実行されないことはわかっていますが、それでもアセンブリにコンパイルされますか?アセンブリが余分な方法で肥大化しないようにしたいだけです。

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

c# - C# の #if / #ifdef 構文がコンパイルされないのはなぜですか?

以下のコードがコンパイルされないのはなぜですか (スニペット) ?

0 投票する
1 に答える
972 参照

ocaml - OCamlでの条件付きコンパイル

オプションでデバッグするために冗長にしたい長いアルゴリズムがあるとします。これまでのところ、コード全体に多くを追加if verbose then printf "whatever"しましたが、冗長モードにしたくない場合は、コードに多くの役に立たないテストを実行させます。

フラグが設定されている場合にprintf行を無視できる単純な条件付きコンパイルを取得する方法はありますか?

たとえば、Cで使用できること#IFDEF DEBUG printf .. #ENDIF

0 投票する
1 に答える
997 参照

cocoa - 条件付きでコンパイルされた NSLog 置換で「未使用の変数」コンパイラの警告を回避する方法は?

これは、 のスマートなバリアントを検索した結果ですNSLog()。の重要な機能の 1 つは、リリース ビルドとディストリビューション ビルドでBetterLog()は、NSLog()置き換えが何もコンパイルされないことです。提案された解決策 (たとえばIs it true that one should not use NSLog() on production code? を参照) は、プリプロセッサ シンボルを定義しBetterLog()て、ビルドの種類に応じて の定義を制御することです。通常:

whereDEBUG_MODEは、デバッグ ビルド専用のプリプロセッサ シンボルとして定義されます。

ただし、多くの場合、つまり、ログ ステートメントが中間変数を使用して構築された場合、結果は未使用の変数に対するコンパイラ警告です。次に例を示します。

ここでは、3 つの文字列すべてがコンパイラの警告を生成します。そして、コンパイラの警告が嫌いです。

もちろん、何らかの条件付きで変数宣言自体を含めずに回避することは不可能です。次の試みを行いましたが、うまくいきませんでした。

単純DEBUG_MODEにデバッグ モードでのみ定義するのではなく、デバッグ モードでは値 1、リリース モードでは値 0 で常に定義します。

次に、コンパイラのデッド コード ストリッピングの最適化を利用しようとしました。

コードは問題ありません。リリース モードで正しく削除されています。それでも、コンパイラは未使用の変数の警告を出します。

問題は、醜いものよりも良いことはできないかということです:

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

c++ - Intel C++ で C++0x モードを検出していますか?

インテル® C++ は、コンパイル時にいくつかのマクロを事前定義しQstd=c++0xますか? __GXX_EXPERIMENTAL_CXX0X__GCCのようなもの ですか?__cplusplusまだまだ199711です。

C++0x コンパイルを検出する方法はありますか?

0 投票する
7 に答える
9477 参照

c# - C#での条件付きコンパイルの代替手段

C#で条件付きコンパイルを使用するコードを使用する代わりに何ができますか?

#ifdefに基づくコードがたくさんあるクラスがあります..しばらくすると、コードが読めなくなります。

#if多くの定義を持つコードの読みやすさとメンテナンスを向上させるために使用するリファクタリング手法を探しています

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

conditional - 外部値に基づくCython条件付きコンパイル

Cython pxdからcコードに条件付きでコンパイル(または生成)しようとしています。DEFでaa値を定義し、IFでその値に基づいて条件付きで生成できることを読みましたが、pxdファイルの外部からこの値を取得するにはどうすればよいですか?

特に、これら2つのケースは私にとって興味深いものです。

  • できればCython.Distutilssetuptoolsの方法で、Cythonにコマンドライン定義を指定します
  • 外部化されたCヘッダーファイルはいくつかの値を定義し、この値に基づいてCythonを使用して条件付きで定義します(おそらく今は不可能ですか?)

ありがとうございました

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

c# - Visual Studio C#プロジェクト:.csprojに条件付き参照を配置する方法は?

私はオープンソースプロジェクト(Logbus-ng)に取り組んでおり、WindowsとMonoの両方で機能する方法で、コンソールアプリケーションによって生成されたWebサービスを実装する必要があります。

現在、 MSDN Magazineによるチュートリアルのおかげで、 Windowsでこれを行うことに成功しました。コンソールアプリケーションは、独自のWebサーバーを生成し、実際に外部へのWebサービスインターフェイスを開くことができます。問題は、Monoのバグが原因で、これがMonoでは機能しないことです。

Monoの開発者とチャットして、Mono.XSPアセンブリを使用してコンソールアプリケーションへのASP.NETパイプラインを有効にすることを提案したので、構成に応じてWebサービスアクティベーターのさまざまな実装を使用すると思います。

今私の質問は:Mono.XSPはすべてのMonoディストリビューションのGACで利用可能ですが(つまり、Linuxでxbuildを使用している場合)、誰かがGACにインストールしない限り、Windowsでは利用できません。Monoを出荷したくありません。私のソフトウェアを使用したXSPは、必要がない場合(つまり、Windowsでコンパイルする場合)にMonoをインストールするように強制することもありません。また、MONOコンパイルフラグが有効になっている場合にのみ有効になるGACのMono.XSPアセンブリへの参照を設定できます。 ?このフラグを有効にすると、私のコードは明らかに、上記のリンク先のチュートリアルで説明されているHttpListenLibraryではなくMono.XSPを参照し、その参照はコンパイラーによって正しく使用されます。

前もって感謝します。