.expの用途と.libと.dllの違いは何ですか?
質問
コンパイルおよびリンク時に、.exp はどのように使用されるのですか?.libと.dllの違いは何ですか?私は、リンクしている間、.libが使用され、プログラムを実行するとき、.dllが使用されることを知っています。しかし、.libと.dllの違いは正確には何ですか?
.lib ファイルは .dll ファイルから来る関数のコードを含んでいないのですか。 2 つの別々のファイルを使用する必要性は何ですか?
明確にしてください。
どのように解決するのですか?
DLL のインポートライブラリの場合、.lib ファイルでは ではなく には実際のコードはまったく含まれていません。基本的には、関連する DLL の関数のリストが含まれているだけで、リンカーがその DLL への参照をライブラリとリンクされたものに埋め込むには十分ですが、それ以外にはあまりありません。
.exp ファイルはエクスポートファイルで、基本的には .lib ファイルとほぼ同じです。これは、循環依存関係がある場合に (少なくとも主に) 使用されます。たとえば、ある実行ファイルのプラグインとして動作する DLL があるとします。実行ファイルはプラグイン DLL が使用するためにエクスポートされた関数を提供しますが、プラグイン内のいくつかの関数も呼び出すことができる必要があります (たとえば、プラグインをロードして初期化する場合など)。
DLL は、実行ファイルが .lib ファイルを提供するためにビルドされるまでリンクされません --。依存関係を解消するために、実行ファイルに対してリンカーを実行すると、(DLL 用の .lib ファイルが見つからないため)失敗しますが は は .exp ファイルを生成します。次に、実行ファイル用の .exp ファイルに対して DLL をリンクします。その後、DLL 用の .lib ファイルを使用して、実行可能ファイルを作成するためにリンクを再実行できます。
関連
-
関数 'malloc' の暗黙の宣言に対する解決策
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] C++でextern "C "を使用した場合の効果は?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] ++iとi++の違いは何ですか?
-
[解決済み] スタティック・ライブラリとシェアード・ライブラリの違い?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】定義と宣言の違いは何ですか?
-
[解決済み】共有オブジェクト(.so)、静的ライブラリ(.a)、DLL(.so)の違い?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ポインタ定数および定数ポインタ
-
[解決済み] Xcode - 警告。C99 では関数の暗黙の宣言は無効です。
-
[解決済み] stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み] CコードでEOFを表現する?
-
[解決済み] C言語の**はどういう意味ですか?
-
[解決済み] C言語で関数型プログラミングを行うためのツールにはどのようなものがありますか?
-
[解決済み] C言語でランダムなint型を生成するには?
-
[解決済み] printfは、フォーマット文字列の中に改行がないと、呼び出し後にフラッシュしないのはなぜですか?
-
[解決済み] C言語のi++と++iに性能差はあるのでしょうか?
-
[解決済み] C言語で "unsigned long "をprintfする方法は?