50

GCC を使用して実行可能ファイルをリンクしたい共有ライブラリがあります。共有ライブラリには、libNAME.so の形式ではない非標準の名前が付いているため、通常の -l オプションを使用できません。(たまたま Python 拡張機能でもあるため、'lib' プレフィックスはありません。)

ライブラリ ファイルへのパスをリンク コマンド ラインに直接渡すことはできますが、これにより、ライブラリ パスが実行可能ファイルにハードコードされます。

例えば:

g++ -o build/bin/myapp build/bin/_mylib.so

パスを実行可能ファイルにハードコーディングせずに、このライブラリにリンクする方法はありますか?

4

3 に答える 3

75

ライブラリに別の名前を付けることができる ":" プレフィックスがあります。使用する場合

g++ -o build/bin/myapp -l:_mylib.so other_source_files

_mylib.so のパスを検索する必要があります。

于 2008-11-11T15:42:23.237 に答える
2

g++ が呼び出されたときに共有ライブラリを作業ディレクトリにコピーできる場合、これは機能するはずです。

g++ -o build/bin/myapp _mylib.so other_source_files
于 2008-10-16T01:40:43.083 に答える
1

Unix または Linux を使用している場合は、ライブラリが必要なディレクトリにライブラリへのシンボリック リンクを作成できると思います。

次に例を示し
ln -s build/bin/_mylib.so build/bin/lib_mylib.so

ます。-l_mylib

http://en.wikipedia.org/wiki/Symbolic_link

于 2008-10-16T01:41:49.430 に答える