問題タブ [compiler-construction]
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.
delphi - Delphi パッケージ内のユニットの暗黙的なインポートを防ぐ
「含む」リストに記載されていないユニットをDelphiのパッケージが暗黙的にインポートするのを防ぐ方法はありますか? 暗黙的なインポートを実行しようとするとビルドが失敗するコンパイラ ディレクティブを探しています。
ユニット A を暗黙的にインポートするパッケージを IDE にインストールしてから、ユニット A を実際に含む別のパッケージをインストールしようとすると、問題が発生します。IDE は、ユニット A が最初のパッケージに既に含まれているため、そのパッケージをインストールできないと通知します。そうではない場合!
c - MinGW "stdio.h:そのようなファイルやディレクトリはありません"
MinGWを使用してWindowsXPでCプログラムをコンパイルしようとしています。gcc.exeは次のエラーを出します:
stdio.h:そのようなファイルやディレクトリはありません
コード(hello.c)は次のようになります。
バッチファイルを使用してgccを呼び出します。バッチファイルは次のようになります。
オプション-Iを効果なしで試しました。私は何を間違えますか?
.net - 2台のマシンで同じソースコードを使用すると、実行可能ファイルの動作が異なります
シナリオは次のとおりです。
SVNに保存されているAC#Windowsアプリケーションプロジェクトは、実行可能ファイルを作成するために使用されます。通常、ビルドサーバーはビルドプロセスを処理し、テストで使用される定期的な間隔でビルドを作成します。この特定の例では、特定のビルドを変更して実行可能ファイルを作成するように求められました。
ビルドサーバーがプロジェクトファイルを変更するかどうかは完全にはわかりませんが、実行可能ファイルのコンパイルに使用したソースコードのタグをSVNに作成することは知っています。そのタグを使用して、開発マシンである2番目のマシンでコードをチェックアウトしました。次に、開発マシンでソースをコンパイルしました。
実行すると、開発マシンでコンパイルされたアプリケーションは、ビルドサーバーでコンパイルされたアプリケーションとまったく同じようには機能しません。たとえば、テストマシンでは、DateTimeParseの実行がアプリケーションによって検出されます。ただし、ビルドマシンの実行可能ファイルは例外をスローしません。開発マシンで実行可能ファイルを実行しても、例外はスローされません。
したがって、要約すると、両方のマシンは理論的には同じソースコードとプロジェクトを使用しています。
開発マシンの実行可能ファイルは、開発マシンでのみ機能します。ビルドマシンの実行可能ファイルは、開発マシンを含むすべてのマシンで機能します。
マシンの地域設定またはタイムゾーンは、コンパイルされた実行可能ファイルに保存されていますか?この動作の原因となる可能性のあるアイデアや、実行可能ファイルをチェックして考えられる違いを見つけて修正する方法はありますか?
残念ながら、テストマシンを使用してデバッガーを接続することはできません。できるだけ早くします。
java - Javaで条件付きコンパイル時エラーを生成する
構文を間違えたなどの理由でコンパイルエラーを意味するのではありません。C ++では、次の例のように、条件に基づいてコンパイル時エラーを作成できます。
VS 2005では、これは次のように出力されます。
Javaでこれを実現する方法はありますか?
c++ - C および C++ で静的変数はどこに格納されますか?
実行可能ファイルのどのセグメント (.BSS、.DATA、その他) に、名前が衝突しないように格納されている静的変数がありますか? 例えば:
両方のファイルをコンパイルし、fooTest() と barTest を繰り返し呼び出すメインにリンクすると、printf ステートメントは個別にインクリメントされます。foo 変数と bar 変数は翻訳単位に対してローカルであるため、理にかなっています。
しかし、ストレージはどこに割り当てられているのでしょうか?
明確にするために、ファイルを ELF 形式で出力するツールチェーンがあることを前提としています。したがって、これらの静的変数用に実行可能ファイルに予約されたスペースが必要であると私は信じています。
説明のために、GCC ツールチェーンを使用すると仮定します。
compilation - ジャストインタイム (JIT) コンパイラは何をしますか?
非JITコンパイラとは対照的に、JITコンパイラは具体的に何をしますか? どなたか簡潔でわかりやすい説明をいただけないでしょうか。
visual-studio - コンボ ボックス アイテムの比較とコンパイラの警告
VisualStudio (Pro 2008) で、いくつかの一貫性のない動作に気付き、その背後に論理的な理由があるかどうか疑問に思いました
WinForms プロジェクトで、次の行を使用すると
オブジェクト型を MyObject 型と比較しているときに、「意図しない参照の可能性」が発生する可能性があるというコンパイラ警告が表示されます。けっこうだ。
ただし、代わりにインターフェイスを使用して比較すると、次のようになります。
コンパイル警告は消えます。
これが発生する論理的な理由があるのか 、それともコンパイラのアーティファクトで比較警告のインターフェイスをチェックしないのか、誰でも考えることができます。何かご意見は?
編集私の例では、コンボボックスはリストにバインドされていましたが、そのリストは次を使用して生成されましたlist<IMyInterface>.Cast<MyObject>().ToList<MyObject>()
あたかも私が IMyInterface のリストにバインドしていると仮定して、コンパイラはまだ取っているかのようです。
(無実を保護するために、オブジェクトとインターフェイスのメソッドが変更されました)
java - 自動キャストは役に立ちますか?
Javaコンパイラを自動的にキャストするように変更することのマイナス面や問題の可能性はありますか? 以下の例では、list.get(0) の結果が変数 hi の型に自動的にキャストされます。
ジェネリックを使用するとキャストを減らすことができることは知っていますが、宣言をより困難にするという犠牲を払っています。私にとって、ジェネリックの利点は、コンパイラーがより多くのルールを適用できるようにすることです。ジェネリックはキャストを減らすのではありません (ただし、あまり使用していないため、多少情報がありません)。この提案は、入力するコードの量を減らすだけで、別の場所に移動することはありません。また、コレクションが異なるオブジェクトを持つ可能性があるため、ジェネリックを使用できない場合もあります。それが現在の使用法に基づいて「あまりにも驚くべきものに見える」場合は、それを使用するための構文の調整が必要になる可能性があります。
から: http://jamesjava.blogspot.com/2007/01/automatic-casting.html
windows - ワンクリックコンパイラ
コンパイルするのにソースコードを1回か2回クリックするだけでよいコンパイラを知っていますか?それを行うように構成する必要はありません。また、端末に移動して1〜2語を書く必要もありません。
なぜGUIが含まれているコンパイラが非常に少ないのか、またはエクスプローラのコンパイラリストに送信するだけなのかについて独自の見解を示すことができる場合は、追加のポイントが与えられます。
その理由は、プログラミングをしていない友達にソースを送信できるようにしたいからです。sparcコンピューターを備えているものもあれば、複数のコアを備えたx64を備えているものもあります。
次に、コードをコンパイルして削除し、コンピューター用に最適化されたバイナリのみを保存できるようになります。
.net - Phoenix コンパイラをより強力な NGEN として使用できますか?
Phoenix をご存じない方のために説明すると、これは Microsoft のコンパイラ フレームワークであり、Microsoft のすべての新しいコンパイラの基盤となることが明らかです。CIL、x86、x64、および IA64 からコードを読み取ることができます。x86、x64、IA64、または CIL でコードを出力します。
純粋な .Net アプリを純粋なネイティブ アプリに変換するために使用できますか? つまり、.Net .dll (mscoree でさえも) をロードする必要がなく、同じセマンティクスを持つのでしょうか? もちろん、これはリフレクションを除外しています。