1

Linux で共有ライブラリを使用している場合、アプリケーションが実行時にライブラリを見つけなければならないのに、なぜ -l でリンクする必要があるのですか?

リンクステップ中に適切な関数シグネチャを使用してダミーの .so を渡し、実行時に実際の .so に置き換えても、正しく動作することはできませんか?

ヘッダー ファイルだけでアプリケーションをコンパイルし、実行時にリンクを実行する方法はありますか?

4

1 に答える 1

2

Linuxで共有ライブラリを使用している場合、アプリケーションが実行時にライブラリを検索する必要があるのに、なぜそれを-lとリンクする必要があるのですか?

ローダーが実行時にロードする必要のあるライブラリを認識できるようにします。

リンク手順中に適切な関数シグネチャを使用してダミーの.soを渡し、実行時に実際の.soに置き換えても、正しく機能させることはできませんか?

絶対。

ヘッダーファイルだけでアプリケーションをコンパイルし、実行時にリンクを実行する方法はありますか?

はい。ただし、ライブラリと関数をロードするのはあなた自身責任です。dlopen(3)dlsym(3)

于 2012-05-23T17:31:33.890 に答える