問題タブ [incremental-linking]
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.
visual-c++ - ilkターゲットディレクトリ
インクリメンタルリンクが有効になっている場合、Visual C++は$(TargetDir)に* .ilkファイルを生成しますが、この動作をオーバーライドして別のディレクトリにリダイレクトできますか?(ビルド後の手順を使用せずに)
c++ - Visual C++ での部分ビルドと完全ビルド
Visual C++ を使用した開発作業のほとんどで、部分ビルドを使用しています。たとえば、F7 キーを押すと、変更された C++ ファイルとその依存関係のみが再ビルドされ、その後にインクリメンタル リンクが続きます。バージョンをテストに渡す前に、現在のプロジェクトで約 45 分かかります。この行動を支持する多くの投稿や記事を見てきましたが、これが必要なのだろうか? もしそうなら、なぜでしょうか? 配信された EXE または関連する PDB (テストでも使用) に影響がありますか? テストの観点から見て、ソフトウェアの機能に違いはありますか?
リリース ビルドでは、VS2005、インクリメンタル コンパイルとリンク、プリコンパイル済みヘッダーを使用しています。
windows - 実行可能ファイルがインクリメンタルにリンクされているかどうかを知るにはどうすればよいですか?
Purify 6 を使用して、VC++ 2003 (7.1) でビルドされた実行可能ファイルのメモリ破損を分析しようとしています。
次のコマンドでバイナリをインストルメント化すると、次のようになります。
インストルメンテーションが中止され、実行可能ファイルがインクリメンタルにリンクされたことが通知されます。困惑して、ビルドオプションを確認しました/INCREMENTAL:NO
が、そこにありました。確かに、私はそれを再構築し、オプションはリンク時に正しく渡されました。
実行可能ファイルがインクリメンタルにリンクされているかどうかを知る方法はありますか?
私は何をdumpbin /HEADERS
言っているのかを見ましたが、関連するものは何も見ませんでした。
ありがとう。
c++ - C ++:リンク:debug \ XXXXX.exeが見つからないか、最後のインクリメンタルリンクによってビルドされていません。フルリンクを実行する
Visual Studio 2008 SP1を使用して、
この行:
どんなに小さな変更を加えても、プロジェクトをコンパイルするたびに表示されます。
その理由は何でしょうか?
incremental-linking - 「インクリメンタルリンク」とは何ですか?
私はMicrosoftのMSDNとWeb全体を見てきましたが、それが何であるかについて本当に良い考えを得ることができませんでした。
完成したプログラムは、起動時に一度にすべてのDLLをロードするのではなく、実行中のさまざまな時間にDLLをロードすることを意味しますか?
私は完全に離れていますか?:)
linux - Linux で gcc を使用したインクリメンタル リンク。出来ますか?
私のチームのプロジェクトの開発方法では、すべての.o
オブジェクト ファイルからアプリケーション用の共有オブジェクト ライブラリを生成します。私の仕事 (うまくいけば、それは十分に具体的であると同時に、他の人に役立つほど一般的でもあります!) は、実行可能ファイルが最後に作成されてから変更されたオブジェクト ファイルのみをリンクすることです。たとえば、.so のビルドに使用するコマンド ラインは次のとおりです。
これは期待どおりに機能します。:)私の目標は、変更されたオブジェクトファイルのみをリンクできるようにして、同時リンクプロセスを高速化することです。コマンドの例は次のとおりです。
libMySharedLibrary.so
古いオブジェクトファイルも維持しながら、新しいオブジェクトファイルで更新されますlibMySharedLibrary.so
。実際、libMySharedLibrary.so
上記のコマンドで生成すると、すべてのオブジェクト ファイルが含まれている場合よりもファイル サイズが大幅に小さくなっているため、上記のコマンドが意図したとおりに実行されていないことはほぼ確実です。
私の調査を通じて、-i
オプションと同じリンカのオプションがあることがわかりました。これは、-r
すべてのオブジェクト ファイルを 1 つの大きなオブジェクト ファイルに結合するだけのように見えます。残念ながら、これが私が望むものではないようです。
要するに、最初のリンク後に変更されたオブジェクト ファイルのみをリンクして、将来のリンクのリンク プロセスを高速化したいと考えています。これを行う方法はありますか?
編集:私が試したものの例-i/-r
:
コマンド例:g++34 -Wl,-r -nostdlib -rdynamic -m64 -Wl,-rpath,'$ORIGIN' MyObject1.o MyObject2.o MyObject3.o MyObject4.o -o AllMyObjects.o
-nostdlib
タグが必要だと叫ぶのを止めるためにタグを追加する必要があり、-shared
共有オブジェクトは-r
タグで許可されていないため削除しました。
このコマンドは、すべての .o ファイルを 1 つの大きな .o ファイルにまとめるように見えます。したがって、変更された .o ファイルのみを使用して、これからその .o ファイルを更新できれば、それは素晴らしいことです。AllMyObjects.o が最初に作成された後、次のコマンドを試しましたg++34 -Wl,-r -nostdlib -rdynamic -m64 -Wl,-rpath,'$ORIGIN' MyObject1.o MyObject3.o -o AllMyObjects.o
: AllMyObjects.o
これは私が小さな間違いを犯している可能性が高いものだと感じています。誰にもアドバイスはありますか?前もって感謝します。
eclipse-plugin - Eclipse を使用して DSL を構築するときのインクリメンタル コンパイルへの最良のアプローチは何ですか?
Eclipse のドキュメントで示唆されているように、org.eclipse.core.resources.IncrementalProjectBuilder
各ソース ファイルをコンパイルする があり、個別にorg.eclipse.ui.editors.text.TextEditor
各ソース ファイルを編集できる もあります。各ソース ファイルは独自のコンパイル ユニットにコンパイルされますが、他の (既にコンパイルされた) ソース ファイルから型を参照できます。
これが重要な 2 つのタスクは次のとおりです。
- コンパイル (使用している型が実際に存在することを確認するため)
- オートコンプリート (タイプを調べて、そこに存在するプロパティ/メソッドを確認できるようにするため)
これを実現するために、コンパイルされたすべての型の表現をメモリに格納します (以下、「型ストア」と呼びます)。
私の質問は 2 つあります。
上記のタスク 1 はビルダーによって実行され、タスク 2 はエディターによって実行されます。両方がこの型ストアにアクセスできるようにするには、両方がアクセスできる静的ストアをどこかに作成する必要がありますか、または Eclipse はこの問題に対処するためのより適切な方法を提供しますか? 必要なときにビルダーとエディターをインスタンス化するのは、私ではなくEclipseであることに注意してください。
Eclipse を開くときに、タイプ ストアを再作成できるようにするためだけに、プロジェクト全体を再構築する必要はありません。これまでの私の最善の解決策は、このデータをどこかに保持し、そこからストアを再作成することです (おそらくプロジェクトを開いたときに)。これは、他のインクリメンタル コンパイラが通常行う方法ですか? Java のアプローチは、クラス ファイルからこのデータを効率的に抽出する特別なパーサーを使用することだと思います。
どんな洞察も本当に高く評価されます。これは私の最初の DSL です。
c++ - Visual Studio C++ でのインクリメンタル リンクのパフォーマンスが低い
多くの静的ライブラリとスタンドアロンの cpp ファイルで構築された大きなバイナリがあります。インクリメンタル リンクを使用するように構成されており、すべての最適化が無効になっています/Od
- これはデバッグ ビルドです。
スタンドアロンの cpp ファイルを変更すると、インクリメンタル リンクが高速に実行されることに気付きました - 1 分。しかし、静的ライブラリのcppを変更すると、通常のリンクと同じ10分という長時間実行されます。この場合、インクリメンタル リンクを使用しても何のメリットもありません。それを高速化することは可能ですか?私はVS2005を使用しています。
qt - QtCreatorをnmakeと段階的にリンクさせる方法は?
以前はVisualStudio(2008)で開発していましたが、主にコードナビゲーション、リファクタリング、コード補完により、現在はほぼ完全にQtCreatorでの開発に切り替えています。win32-msvc2008
mkspecを使用しています。これまでのところ、1つを除いてすべてを設定することができました。
インクリメンタルリンク。
プロジェクトファイルに次の行を追加しました。
そして私は次のようなリンカーラインを取得します
ただし、.cppファイルのみを変更し、変更を元に戻して保存しても、.exeが見つからないか、最後の増分ビルドで完全にビルドされていないことが常に表示されます。
シャドウビルドを使用した場合と使用しない場合でビルドを試みましたが、nmakeまたはjomを使用すると、どちらの組み合わせも機能しません。
QtCreatorをnmakeと段階的にリンクさせることができた人はいますか?
PS:Qtプラグインを使用してプロジェクトファイルをVisual Studioにインポートすると、インクリメンタルリンクは完全に機能します。
visual-studio-2008 - Visual Studio 2008 の LNK1210
Chromium プロジェクトをリンクすると、次のエラーが表示されます。
VS2005にも同様の質問があります。リンカーがすでに完全なリンクを行っているため、どういうわけか奇妙です。設定/INCREMENTAL:NO
すると正常にリンクされますが、インクリメンタル リンクは無効になります。
ILK サイズ制限を増やしてインクリメンタル リンクを有効にする方法はありますか?