問題タブ [static-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.
programming-languages - インタープリター、動的コンパイラー、静的コンパイラー (例: C++ コンパイラーなど) を備えた高水準言語と、マルチメディア ライブラリーはありますか?
インタープリターと動的コンパイラーはテスト/プロトタイピング用であり、テストが完了したら静的コンパイラーを使用します。
c++ - mingw32-make コマンドを使用して Qt アプリケーションを静的にコンパイルしようとしましたが、#include ステートメントでエラーが発生しました
静的にコンパイルしたいテキスト エディター アプリケーションを作成しました。このページに記載されている指示に従いました。
すべてのソース ファイルがあるディレクトリに移動しました。ラン:
であり、コード内の #include ステートメントが原因で発生したすべてのエラーのリストを取得した場所です。のように、私が書いた場合#include <QMainWindow>
、エラーが発生します
QMainWindow: そのようなファイルまたはディレクトリはありません。
私は何を間違っていますか?
groovy - Groovy 静的コンパイル
- groovy を使用して 100% 静的コードを作成できますか? 標準ライブラリを使用している場合でも?
- アプリケーション全体で 100% 静的コンパイルを有効にするにはどうすればよいですか?
time - "@CompileStatic" を使用すると、Groovy コードの速度が速くなったり遅くなったりします
次のGroovyコードのスニペットがあります
xは1、3、7 、または 9 で終わる数字です。
私は Eclipse 用の groovy プラグインを使用しているので、コードを実行したい場合、いくつかのオプションがあり、Groovy スクリプトまたは Java アプリケーションとして実行できます。ここにランタイムがあります。
しかし、静的コンパイルを有効にすると、これが起こります
私は混乱して
います。1. Java アプリケーションへのコンパイルは、Groovy をスクリプトとして実行するよりも高速であるはずだと思っていました。
2. Groovy スクリプト オプションが静的コンパイルで非常に高速になり、Java スクリプト オプションが長くなるのはなぜですか?
c++ - コンパイル時にg ++が行き過ぎます
再帰テンプレートを使用して、C++ で非常に単純な単一継承スタック トレースを実装しようとしています。
すべて問題ないはずですが、コンパイルしようとすると、g++ は
if(typeid(T)==typeid(StackTrace))return;を無視します。次のエラーを返します。
C::Base::Base::Base::Base /StackTrace::Base/ クラスを呼び出そうとしますが、実行時に呼び出されることはありません。printStackTrace 宣言の直後にreturn文を入れても同じエラーと評価されます。スコープとメンバー関数が動的にチェックされないのはなぜですか? また、コンパイラがreturnを無視するのはなぜですか?
java - Groovy @CompileStatic クラスには引き続きメタクラス コードを含める必要がありますか?
主に POJO と値オブジェクトである多くのクラスの定型文を減らすために、いくつかの Groovy クラスを Maven で構築した Spring アプリケーションに組み込み始めています。(比較のために、私は定型文を処理するために Roo を使用していますが、Roo は Spring と Maven の新しいバージョンでますます不安定になっています。) 私の Spring Data MongoDB クラスの 1 つは次のようになります。
これらはごくありふれた構造体オブジェクトにすぎないため、Groovy のメタクラス化と呼び出し位置設定の複雑さとオーバーヘッドは必要ありません。POJOに相当するものが欲しいだけです。クラスに で注釈を付けようとしまし@CompileStatic
たが、バイトコード内のいくつかの呼び出しが に置き換えられましたinvokedynamic
が、いくつかの大きな Groovy メソッドとデータ構造を含むinvokevirtual
巨大なファイルをまだ取得しています。.class
汎用スーパークラスを具体化する空のサブクラスに過ぎない 1 つのクラスは、5k を超えるバイトコードです。
Eclipse 内とコマンド ラインの両方からgroovy-eclipse-compiler
(2.8.0-01) を使用してコードをコンパイルしましたが、多少の違いはありますが、バイトコードには動的な「膨張」がすべて含まれています。私が取り込んでいる Groovy 依存関係は 2.3.2 で、Java ターゲットを 1.7 に設定しています。
@CompileStatic
Groovy メタデータとコードのすべてがコンパイルされているとマークされたクラス全体でさえ期待されますか? もしそうなら、それを無効にする他の方法はありますか?
grails - Grailsで静的コンパイルを設定するには?
私は Grails の初心者で、静的コンパイルを使用したいのですがGrailsCompileStatic
、各クラスに注釈を使用したくありません。構成ファイル内のすべてのクラスに対して設定できますか?
GrailsCompileStatic
本番環境専用の静的コンパイルを使用する必要があるため、注釈は使用できません。他の環境では、動的コンパイルを使用する必要があります。
誰か解決策を知っていますか?? また、使用されたコンパイルを確認するにはどうすればよいですか?
答えてくれてありがとう..
c++ - 有限数の設定のすべてのバリアントの C++ コンパイル コード
たとえば、 function 内にハード ロジックがありますvoid Func(long param1, long param2, long param3, long param4, long param5)
。
内部には多くのステートメントがあり、パラメーターに依存し、さまざまなチェックが行われ、計算は組み合わせに依存します。
そして、その関数は何百万回も呼び出され、かなりの実行時間がかかります。そして、その時間を減らしたい。
すべてのパラメーターはconfig.ini
ファイルから取得されるため、コンパイル時には不明です。
しかし、私は、param1がdiapason [1..3]、param2がdiapason [0..1]などである可能性があることを知っています.
最終的に、これらのパラメータの組み合わせは 200 通りになるでしょう。
そして、コンパイラーが 200 の組み合わせを分離してコンパイルし、実行時の最初にconfig.ini
ロードされたときに、そのうちの 1 つを選択するだけで、パラメーターの依存関係の実行時の計算を回避したいと考えています。
C++98でそれを達成することは可能ですか? またはC++ 11/14で?
c++ - 静的 glibc を使用して共有オブジェクト (.so) をコンパイルする
共有オブジェクト (.so) にする必要があるコードを作成しています。
ビルド マシンの libc が公開されたマシンよりも新しい可能性があるという問題があるため、互換性の問題を回避するために静的にリンクしたいと考えています。(私のプログラムは memcpy を使用していますが、これは明らかに GLIBC_2.14 のもので、2.5 まで低くなる可能性があります)。
crtbeginT.o が -fPIC でコンパイルされていないため、-shared と -static の両方を使用してコンパイルすると機能しません。
編集: おそらくlibc static と他のライブラリを動的にリンクする GCC の複製ではないでしょうか? その質問はlibcを静的にリンクするメインのエルフについて話しているので、これはlibcを静的にリンクする共有オブジェクトに関するものです。
java - グレイル。@GrailsCompileStatic を使用するときに「混合」メソッドと変数を処理する方法
@GrailsCompileStatic
grails 3.1.7 アプリケーションの多くの場所でアノテーションを使用したいと思っています。save()
しかし、主な問題は、ドメイン、コマンド、およびコントローラーが追加のメソッド (または などvalidate()
) または変数 ( など)と「混合」されていることを考慮していないことg
です。
上記のメソッドの回避策を見つけました。空のメソッドを持つ抽象クラスからドメインとコマンドを継承しますsave()
(その実装は grails によってオーバーライドされますが、静的コンパイルは失敗しません)。また、この抽象クラスは、メソッド実装grails.validation.Validateable
で trait を実装します。validate()
しかし、これらの汚いトリックなしで静的コンパイルを有効にするより良い方法はありますか?
多くのコントローラーで、g.createLink()
メソッドを使用します。g
静的コンパイル中にこれを回避するには、内部に変数を渡すにはどうすればよいですか?
エラー:(37, 39) Groovyc: [静的型チェック] - 変数 [g] が宣言されていません。