2

Linux で共有ライブラリをインストールするには、makefile を使用する方法を考え出すことに午前中を費やしました。

それで結構です。これで、共有オブジェクトとそれへの一対のソフト リンクができました。そのうちの 1 つは ldconfig によって作成され、もう 1 つは私によって作成されました。

これで、ライブラリを静的ライブラリとして構築することもできます。

/usr/lib を確認すると、そこにある .a ファイルが...そこにあることがわかります。シンボリック リンク、ファイル名のバージョンとリリース番号の配置はありません。

共有オブジェクトを配置するのと同じように、シンボリック リンクを使用してスタティック ライブラリを配置する必要がありますか?それとも、装飾のない静的ライブラリを /usr/local/lib に配置するのが実際の慣習なのでしょうか?

4

1 に答える 1

2

共有ライブラリとは異なり、配置された静的ライブラリは/lib、動的リンクの依存関係の解決に参加しません。アプリをビルドするときにのみ使用されます。したがって、シンボリック リンクや正確なリリース番号をファイル名に挿入する必要はありません。

アプリケーションを静的ライブラリにリンクすると、リンカは/libフォルダで見つかったコードを埋め込むだけです。他のシステムで同じ名前の静的ライブラリが異なる場合、アプリケーションはそれについてさえ知りません。コンパイルに使用された静的ライブラリのコードが含まれており、実行するシステムで検索する必要がないためです。

そのため、静的ライブラリのインストールは共有ライブラリのインストールとは異なる必要があります。ディレクトリ内のきめ細かいバージョン管理/libは実際には必要ありません。

于 2010-01-10T11:54:15.663 に答える