Linux用に設計されたC++プロジェクト(g ++/raw Makefile)を使用しています。今、私は、静的にも動的にもリンクされたバイナリを構築したいと思います。次のコマンドは、Makefileで動的ライブラリ(libtestなど)をビルドするために使用されます。linux(Makefile)で自分自身の動的ライブラリを使用する方法
$(CXX)-shared -Wl、-soname、libtest.so.1 -o libtest.so.1.0.0 $ > libtest.so.1.0.0 - LIBTEST_OBJS)
出力はので、私は、少なくともシンボリックリンクlibtest.soを見つけ
libtest.so.1名前を持っていlibtest.so.1.0.0です上記のlibtest.so.1.0.0ライブラリを実際に使用するクライアントプログラムをリンクする必要があります。
ここで私のソフトウェアをビルドしたいのですが、上記のシンボリックリンクを管理する標準的な方法は何ですか?明らかに私はソースディレクトリにこのような余分なものは望んでいませんが、クライアントのバイナリをビルドする必要があります。クライアントをビルドするための一時リンクとして作成し、完了したら削除しますか?作成する.soライブラリとそのリンクをホストするディレクトリを作成し、 "make install"を実行して他の指定されたディレクトリにインストールするまでそこにすべてを残しますか?これを行うための標準的な方法は今のところ涼しいでしょう。
または、ライブラリの生成方法が間違っていますか?実行可能ファイルをリンクするlibtest.so(リンクではなく実際のライブラリとして)を生成し、ライブラリの名前を変更して `` make install ''を実行するときにそれらのリンクを作成しますか?
任意の入力が評価されます。 :)
+1 libtoolを使用すると、最終的にLinuxから別のものに移植することが容易になります.libtoolは、共有ライブラリのすべてのプラットフォーム依存の問題を処理します。 –