あなたが質問を提起したトピックは広大です。ほとんどの質問は環境によって異なります。また、ソフトリンクを作成するかどうかは、ライブラリを保持しているフォルダや、ライブラリにアクセスする必要のあるプロセスなどによって異なります。
このリンクと、共有ライブラリの作成と使用に関する詳細な説明が記載されているこのリンクも確認してください。
あなたの質問に対するいくつかの短い答え:
それを生成する一般的な方法は何ですか?-fPIC -sharedのみを使用しますか?
使用されるオプションは、コンパイラによって異なります。fPICは、位置に依存しないコードの生成に役立ち、共有によってライブラリが共有ライブラリになります。ただし、それとは別に、ライブラリからエクスポートすることを決定したシンボルのみを公開できるオプションや、ライブラリのグローバルシンボル(-symbolic)などの間に強力なリンクを作成するオプションもあります。
このライブラリへのソフトリンクを作成する必要がありますか?ln-sを使用することを意味します。
上で述べたように、これはライブラリを配置する場所によって異なります。一般的なメカニズムは、ライブラリを任意のフォルダに保持し、/ usr/libなどの一般的に「既知の」またはアクセス可能なフォルダにライブラリへのリンクを作成することです。
共有ライブラリを更新するとどうなりますか。libXXX.so.1.2.3からlibXXX.so.1.2.4まで、共有ライブラリが更新されたことをプロジェクトがどのように認識しますか?プロジェクト全体を再度コンパイルする必要がありますか?
共有ライブラリの主な利点の1つは、コード全体を再コンパイルしなくても最新バージョンを更新できることです。繰り返しますが、これを達成するかどうかは、プラットフォームとコンパイラによって異なります。
Makefileで共有ライブラリを管理する一般的な方法は何ですか?
グーグルで利用可能な多数のリンクがあり、私のリンクもいくつかの基本的な詳細を提供します。