問題タブ [static-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.
c# - サテライト アセンブリを静的にリンクできますか?
私はサテライト アセンブリについてその構造を理解するのに十分な知識がありません。それらすべてを単一の dll に静的にリンクし、静的にリンクされていない場合と同じ機能を得ることができるかどうか興味があります。
c++ - リンクについての質問とライブラリのさまざまなバージョンのインクルード
実行可能ファイルがあり、ライブラリが別のライブラリの異なるバージョンを使用している場合、問題はありますか?
例:
実行可能ファイル:A.exeがあり、基本的にラップして静的ライブラリA.libに依存している場合
A.exeとA.libの両方に別のライブラリB.libが必要です
私がこのような状況にある場合:
A.libライブラリにはB.libバージョン1が含まれています(このライブラリのヘッダーファイルを使用)A.exe実行可能ファイルにはB.libバージョン2が含まれていますA.exe実行可能ファイルはB.libバージョン2に対してリンクしています
どのような条件下でこれが問題になるでしょうか?
ありがとう
c++ - 静的ライブラリと動的 (共有) ライブラリを混在させていますか?
Core (静的または DLL としてコンパイル可能)、Graphics (静的または DLL としてコンパイル可能 - Ogre を扱う)、Physics (ライセンスのために静的としてのみコンパイル可能 - Havok)の 3 つの異なるライブラリを使用しています。その後、プロジェクトは必要に応じてライブラリを組み合わせて使用します。Physics部分はGraphicsとCoreの一部の機能に依存していますが、GraphicsはCoreの一部の機能に依存しています。プロジェクトは、デバッグとリリースで静的にリンクされたすべてのライブラリで正常に動作します。Coreの動的にリンクされたライブラリを使用すると、次のエラーが発生します。グラフィックスですが、静的にリンクされた物理ライブラリです。
エラー 1 エラー LNK2005: "public: unsigned int __thiscall OgreFW::FwErrorLog::GetError(void)" (?GetError@FwErrorLog@OgreFW@@QAEIXZ) は既に FwCore_d_dll.lib(FwCore_d.dll) で定義されています FwHavok_d.lib
エラーの意味はわかりますが、これを回避する方法がわかりません。ライブラリがこのように相互に依存しており、物理エンジン (Havok) のライセンスで静的リンクしか許可されていない場合、設計を再考する必要がありますか (これは大きな問題です :( ) またはそれを回避する方法はありますか?
ありがとう
EDIT:すべてのライブラリがMDdでコンパイルされていることを確認するためにすでにチェックしました
EDIT2:使用できます/FORCE:MULTIPLE
が、それは問題を解決するのではなく隠しています
EDIT3: いくつかの編集をお詫びします。関数GetError()はヘッダーで定義されています。ソース ファイルに配置すると、リンク エラーはなくなります。何故ですか?
mfc - IMPLEMENT_DYNCREATE、「静的ライブラリで MFC を使用する」と継承
プロジェクトを共有 DLL での MFC の使用からスタティック ライブラリでの MFC の使用に切り替えると、次のコードはコンパイルされません。
ただし、DECLARE_DYNCREATE(Test) のコメントを外すと、機能します。基本クラスで DECLARE_DYNCREATE を使用する必要がある、または静的リンクと共有リンクに違いがあると言っているドキュメントは見つかりません。
問題は、DYNCREATE マクロを使用しないサードパーティ コードがあることです。静的にリンクするときに要件が異なる理由と、基本クラスを DECLARE_DYNCREATE で宣言せずにこれを回避する方法があるかどうかを知っている人はいますか?
ありがとう。
c++ - 'boost :: system :: get_system_category()'への未定義の参照を使用してブーストバーフに対してリンクする
Boost1.35ライブラリを使用するアプリを静的にリンクするのに問題があります。LinuxのDebianLennyボックスをG++4.3.2で使用しています。-staticを使用しないリンクは、問題なく機能します。
具体的には、
/ usr/libのボックスにあるboost_system-mtに対してリンクしています。マルチスレッドセーフではないバージョンのboost_system(-lboost_system)に対してリンクした場合も、同じことが起こります。
そして、私はそこに未解決のシンボルを見つけます
straceは、リンカーがライブラリを開くことを示します
これは、DebianでのBoostの標準パッケージインストールです。
私は愚かな詳細が欠けていると確信していますが、それを見つけることができません。誰か助けますか?
linux - プロジェクトでライブラリを静的にリンクするようにcmakeに指示するにはどうすればよいですか?
Linux上で実行されているCMakeを使用してOpenCVベースのプロジェクトを構築しようとしています。これまでのところ、私のCMakeLists.txt
ファイルは次のようになっています
ただし、これにより、動的にリンクされたライブラリが作成されます。静的ライブラリとリンクするにはどうすればよいですか?
linker - CMake:「可能な限り静的な」バイナリを生成する方法
CMakeでバイナリと検索/リンクされるライブラリのタイプを制御したいと思います。最終的な目標は、静的バージョンが使用可能なすべてのライブラリに対して静的にリンクする「可能な限り静的な」バイナリを生成することです。これは、テスト中にさまざまなシステム間でバイナリを移植できるようにするために重要です。
ATMは、FindXXX.cmakeパッケージ、より正確には、静的と動的の両方が使用可能な場合は常にfind_libraryコマンドが動的ライブラリを取得するため、これを実現するのは非常に難しいようです。
この機能を実装する方法のヒント(できればエレガントな方法で)は大歓迎です!
macos - Macで配布するためにプログラムをコンパイルする方法
OSX 10.6.4(Snow Leopard)でプログラムを開発していますが、コンパイルされた製品を他のIntel Macで実行できるようにしたいと考えています。その中には、XCodeがインストールされていないものもあります。
簡単にするために、私は最初にHelloWorldプログラムを作成しました。
私がそれを次のようにコンパイルすると
次のエラーが発生します:
このライブラリがどこにあるかわかりません。現在、システム共有ライブラリはどこでも利用できるはずなので、Macで静的にコンパイルするべきではないと言う人もいます(サードパーティのライブラリは手動でリンクできます)。ただし、このHello Worldプログラムを別のMacで実行しようとすると、次のエラーが発生します。
では、Macでプログラムをコンパイルして、配布できるようにするにはどうすればよいでしょうか。私が興味を持っているほとんどのコンピューターはIntelMacであるため、アーキテクチャの問題は発生していません。
c - テキストドキュメントやその他のファイルをC実行可能ファイルにパッケージ化できますか
私のCアプリケーションは、コピーするためにいくつかのファイルに依存しています。ファイルはスタンドアロンファイルとしてではなく、実行可能ファイルに含まれますか?静的にリンクする必要がありますか?重要な場合は、EclipseCDTを使用しています。
linux - 静的ライブラリを動的にリンクされたライブラリに変換する方法
私が持っているライブラリが*.a静的ライブラリだけの場合。それを*.soダイナミックリンクライブラリに変換する方法はありますか?多分ldを使用していますか?
私はSUSELinuxを使用しています。ELFプラットフォーム。