私は商用ソフトウェアプログラムを中心に書いた.cppコードを持っており、利用可能な大規模なC ++ライブラリクラスを提供しました。共有オブジェクトの1つをlibtdfdll.so
私の実行可能ファイルに静的にリンクしたいと思います。彼らは私にファイルを提供しませんlibtdfdll.a
。.so
私はg ++ 4.8.3を使用してSLES 11.4でこれを行っています。
私のcppファイルはprocess_tdf_v12.5.cpp
動作する基本的なダイナミックリンクのために今行うことは次のとおりです。
g++ process_tdf_v12.5.cpp -I../tdflibs12.5/include -L../tdflibs12.5/lib -ltdfdll -lm
これはコンパイル/リンクにも機能します。
g++ process_tdf_v12.5.cpp -I../tdflibs12.5/include ../tdflibs12.5/libtdfdll.so -lm
しかし、実行ファイルを実行すると
error while loading shared libraries: libtdfdll.so.1: cannot open shared object file: No such file or directory
私が作らない限り
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/home/ron/tdflibs12.5/lib
私はこれをしたくありません。
process_tdf_v12.5.cpp
私の実行可能ファイルの1つに特定のバージョンの12.5が含まれているので、正しいtdflibs12.5/lib/libtdfdll.so
12.5バージョンを別のシステムにコピーしlibtdfdll.so
たり、問題を引き起こす他の.soバージョンを心配する必要はありません。どうすればいいですか?
.soファイルのみを取得した場合は、それを使用して静的リンクを完了できますか?
また、他のファイルを静的にリンクしたくないので、このlibtdfdll.so
ファイルだけをリンクしたいと思います。