タグ付けされた質問 「compilation」

コンパイルは、ソーステキストを他の形式または表現に変換することです。このタグの最も一般的な使用法は、プログラミング言語からマシンコードへの変換に関する質問です。このタグは通常、プログラミング言語タグ(C、C ++、Goなど)などのソーステキストのタイプを示す別のタグと、変換に使用されるツールまたはコンパイラを示すタグ(gcc、Visual Studio、等。)。


13
なぜC ++コンパイルはそんなに時間がかかるのですか?
C ++およびJavaと比較すると、C ++ファイルのコンパイルには非常に長い時間がかかります。C ++ファイルのコンパイルには、通常サイズのPythonスクリプトを実行するよりも大幅に時間がかかります。現在VC ++を使用していますが、どのコンパイラでも同じです。どうしてこれなの? ヘッダーファイルを読み込んでプリプロセッサを実行することが2つの理由として考えられますが、それがなぜそれほど時間がかかるのかを説明できるとは思えません。




12
エラー:java:無効なソースリリース:Intellijの8。どういう意味ですか?
Intellij Ultimate 13.1.4を使用してコードをコンパイルしようとしていますが、次のエラーが発生し、その意味がわかりません。 Information:Using javac 1.7.0_55 to compile java sources Information:java: Errors occurred while compiling module 'Example' Information:Compilation completed with 1 error and 0 warnings in 3 sec Information:1 error Information:0 warnings Error:java: invalid source release: 8 私の推測では、Java 8とJava 7に関連していると思いますが、具体的には何なのかわかりません。私は、このメッセージのために周りのGoogleにしようとしたが、彼らのいずれかについての話javacやtarget release、それは正確には思えないように適用します。

4
CSS3 calcを使用したそれほど積極的でないコンパイル
レス私は(使用していることをコンパイラOrangeBitsとドットなし1.3.0.5は)積極的に翻訳しています body { width: calc(100% - 250px - 1.5em); } に body { width: calc(-151.5%); } これは明らかに望ましくありません。Lessコンパイラーに信号を送って、コンパイル中に属性を本質的に無視する方法があるかどうか疑問に思っています。Lessのドキュメントと両方のコンパイラのドキュメントを検索しましたが、何も見つかりませんでした。 LessまたはLessコンパイラはこれをサポートしていますか? そうでない場合、CSSエクステンダーはありますか?

24
ビルド日付の表示
現在、タイトルウィンドウにビルド番号を表示するアプリがあります。最新のビルドを持っているかどうかを知りたいほとんどのユーザーにとって何も意味がないことを除いて、それは良いことです。ビルド1.0.8.4321ではなく、「先週の木曜日」としてそれを参照する傾向があります。 代わりにビルド日付をそこに置く計画です-たとえば、「2009/10/21にビルドされたアプリ」など。 このように使用するために、ビルド日付をテキスト文字列として引き出すプログラム的な方法を見つけるのに苦労しています。 ビルド番号には、次のものを使用しました。 Assembly.GetExecutingAssembly().GetName().Version.ToString() それらがどのようにして生まれたかを定義した後。 コンパイル日(とボーナスポイントの時間)については、そのようなものをお願いします。 ここでのポインターは高く評価されます(適切な場合は失礼な言い訳)、またはより適切な解決策...
260 c#  date  time  compilation 

11
Cの数学ライブラリをリンクする必要があるのはなぜですか?
Cプログラムに組み込ん<stdlib.h>だり<stdio.h>、Cプログラムに組み込んだりする場合、コンパイル時にこれらをリンクする必要はありませんが、たとえばgcc <math.h>を使用-lmしてにリンクする必要があります。 gcc test.c -o test -lm これの理由は何ですか?数学ライブラリを明示的にリンクする必要があるのに、他のライブラリをリンクする必要がないのはなぜですか?
254 c  compilation  math.h 

10
Pythonコードをコンパイルする理由
なぜPythonスクリプトをコンパイルするのですか?.pyファイルから直接実行することができ、正常に動作するため、パフォーマンス上の利点はありますか? また、アプリケーションの一部のファイルが.pycにコンパイルされるのに、他のファイルはコンパイルされないことにも気付きました。なぜですか?

3
戻り値型のJavaメソッドはreturnステートメントなしでコンパイルされます
質問1: 次のコードがreturnステートメントなしでコンパイルされるのはなぜですか? public int a() { while(true); } 注意:しばらくしてからreturnを追加すると、が返されUnreachable Code Errorます。 質問2: 一方、次のコードがコンパイルされるのはなぜですか? public int a() { while(0 == 0); } 以下はそうではありませんが。 public int a(int b) { while(b == b); }

22
Swiftのコンパイル時間が非常に遅いのはなぜですか?
Xcode 6 Beta 6を使用しています。 これはしばらくの間私を悩ませてきたものですが、それは現在ほとんど使用することができない状態に達しています。 私のプロジェクトは、65個のSwiftファイルといくつかのブリッジされたObjective-Cファイル(まさしく問題の原因ではありません)の適切なサイズになり始めています。 Swiftファイルを少し変更すると(アプリでほとんど使用されないクラスに単純な空白を追加するなど)、指定したターゲットのSwiftファイル全体が再コンパイルされます。 より詳細な調査の結果、コンパイラ時間のほぼ100%を占めているのは、CompileSwiftXcodeがswiftcターゲットのすべてのSwiftファイルに対してコマンドを実行するフェーズであることがわかりました。 さらに調査を行ったところ、アプリデリゲートをデフォルトのコントローラーでのみ維持した場合、コンパイルは非常に高速でしたが、プロジェクトファイルを追加していくと、コンパイル時間が非常に遅くなり始めていました。 現在、ソースファイルは65個しかないため、毎回コンパイルするのに約8/10秒かかります。それほど迅速ではありません。 私は除いて、この問題について話して任意のポスト見ていないこれを、私はその場合には一つだけだ場合、私は思ったんだけどだから、Xcodeの6の古いバージョンでした。 更新 Alitfire、Euler、CryptoSwiftのようなGitHub上のいくつかのSwiftプロジェクトを確認しましたが、実際に比較するのに十分なSwiftファイルがありませんでした。適切なサイズで開始していることがわかった唯一のプロジェクトはSwiftHNでした。ソースファイルが12個しかなかったとしても、同じことを確認できましたが、1つの単純なスペースとプロジェクト全体で再コンパイルが必要でした。少し時間(2/3秒)。 アナライザーとコンパイルの両方が非常に高速であるObjective-Cコードと比較すると、これはSwiftが大きなプロジェクトを処理することができないように感じますが、私が間違っていると言ってください。 Xcode 6 Beta 7での更新 まだ改善はありません。これはとんでもないことになり始めています。#importSwiftに欠けているので、Appleがこれをどのように最適化できるかは本当にわかりません。 Xcode 6.3およびSwift 1.2での更新 Appleはインクリメンタルビルド(および他の多くのコンパイラ最適化)を追加しました。これらの利点を確認するには、コードをSwift 1.2に移行する必要がありますが、AppleはXcode 6.3にそのためのツールを追加しました。 しかしながら 私のようにあまり早く喜んではいけません。ビルドをインクリメンタルにするために使用するグラフソルバーは、まだ十分に最適化されていません。 実際、最初に、関数のシグネチャの変更は確認されないため、1つのメソッドのブロックにスペースを追加すると、そのクラスに依存するすべてのファイルが再コンパイルされます。 第二に、変更がそれらに影響を与えない場合でも、再コンパイルされたファイルに基づいてツリーを作成するようです。たとえば、これらの3つのクラスを別のファイルに移動した場合 class FileA: NSObject { var foo:String? } class FileB: NSObject { var bar:FileA? } class FileC: NSObject { var baz:FileB? } …


4
なぜJavaクラスは空白行で異なるコンパイルをするのですか?
次のJavaクラスがあります public class HelloWorld { public static void main(String []args) { } } このファイルをコンパイルし、結果のクラスファイルでsha256を実行すると、 9c8d09e27ea78319ddb85fcf4f8085aa7762b0ab36dc5ba5fd000dccb63960ff HelloWorld.class 次に、クラスを変更して、次のような空白行を追加しました。 public class HelloWorld { public static void main(String []args) { } } 繰り返しますが、同じ結果が得られることを期待して出力でsha256を実行しましたが、代わりに 11f7ad3ad03eb9e0bb7bfa3b97bbe0f17d31194d8d92cc683cfbd7852e2d189f HelloWorld.class このTutorialsPointの記事を読みました: おそらくコメントが付いている空白のみを含む行は空白行と呼ばれ、Javaはそれを完全に無視します。 だから私の質問は、Javaが空白行を無視するので、コンパイルされたバイトコードが両方のプログラムで異なるのはなぜですか? つまりにおけるものの違いバイトが置き換えられているバイト。HelloWorld.class0x030x04

3
Visual Studioの[32ビット優先]設定の目的は何ですか、また実際にはどのように機能しますか?
必要なときにコンパイラーが64ビット用にコンパイルする方法をコンパイラーがどのように自動的に認識するかは不明です。自信を持って32ビットをターゲットにできる場合、それはどのようにしてわかりますか? 私は主に、コンパイラーがコンパイル時にどのアーキテクチャーをターゲットにするかを知る方法に興味があります。それはコードを分析し、見つけたものに基づいて決定を下しますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.