1

GNU autotools を使用してプロジェクトをビルドします。今は小さな変更があり、コレクション全体から1 つのライブラリ libmylib.so1 つのプログラム(そのライブラリを使用) だけをコピーしたいと考えています。 myprog.x

make install他のすべてのものを上書きしないように非常に注意する必要があるため、使用したくありません。

私がする時

ldd .libs/myprog.x

使用されているライブラリは、予想どおり、新しく構築されたライブラリであり、 のライブラリではありません/usr/lib/

$ ldd .libs/myprog.x
libmylib.so.0 => /home/user/project/.libs/libmylib.so.0 (0x003bb000)
libnsl.so.1 => /lib/libnsl.so.1 (0x00f57000)
libc.so.6 => /lib/tls/libc.so.6 (0x00948000)
libz.so.1 => /usr/lib/libz.so.1 (0x0024e000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00ee7000)

に手動でコピーできるようにするには、どうすれば通知またはmakeリンクできますか? もちろんにコピーした後。libtool myprog.x/usr/bin/libmylib.so/usr/lib/

4

1 に答える 1

1

(私は実行してこれを解決しましたmake -n install | less。)

おそらく、ライブラリとプログラム (libtool を使用してリンクされている場合) を libtool でインストールしたいので、次のようにしてみてください。

sudo ./libtool --mode=install /usr/bin/install -c libmylib.la /usr/lib
sudo ./libtool --mode=install /usr/bin/install -c myprog.x /usr/bin

Libtool は、./libtool --mode=finishコマンドの実行も要求する場合があります。私はそのアドバイスを信頼します。--dry-runこれを行う前に、オプションを指定してコマンドを実行し、sudo正確に何が起こるかを確認します。

system を実行しているのではなく、スクリプトlibtoolによって作成されたものを実行していることに注意してください。configure

于 2012-07-26T00:32:54.143 に答える