2

LinuxでQt Creatorを使用してプログラムを書いています。ライブラリを使用します。そのために、ディレクトリに.soは と.a同等のものが両方あります。次に例を示します。/usr/lib

/usr/lib/libuseme.a

/usr/lib/libuseme.so

私が理解していることから、 にリンクする.soと動的にリンクされますが、 にリンクする.aと静的にリンクされます。

この場合、自己完結型の方法でプログラムを配布するチャンスを増やすために、静的にリンクしたいと考えています。

ただし、-lリンカーへのオプションでは、ライブラリ名のみを許可しlib、拡張子を指定することはできません-たとえば、

-luseme

.aでは、動的にではなく、に (静的に) リンクすることをどのように示すの.soですか?

4

2 に答える 2

1

では、動的に .so にリンクするのではなく、.a に (静的に) リンクするように指定するにはどうすればよいでしょうか。

ふたつのやり方:

  • /usr/lib/libuseme.aの代わりに完全なライブラリ パスを使用してリンクします。-luseme
  • アーカイブ コピーが必要であることをリンカーに伝えます。-Wl,-Bstatic -luseme -Wl,-Bdynamic
于 2013-07-13T05:00:12.137 に答える