2

共有ライブラリmysql++によって引き起こされる依存関係を最小限に抑えようとしています。私はそれが奇妙に聞こえることを知っています。しかし、ネイティブに特定のライブラリがないSlamd64(32ビット互換性がインストールされている)のプラットフォーム制限を解決するのに苦労しています。他のアプリケーションへの依存関係のため、libmysqlclientの設定を変更できない状況にあります。

mysql ++ライブラリを依存関係に静的にリンクさせる手順、それが私がやろうとしていることです。アプリケーションをmysql++に静的にリンクしようとしないでください。それでもmysql++に動的にリンクしたい。

4

1 に答える 1

2

これは簡単ではありません。あなたはする必要があります

  1. 配布に必要な.aライブラリのリストを取得します(libc.aのようなシステムにインストールされたライブラリをここに追加しないでください)
  2. すべての.aを静的にコンパイルしますが、-fPICを有効にします
  3. すべての.aを1つの.soにリンクします
  4. チェックして、この.soをlddして、アプリケーションにロードできますか

ENVLD_LIBRARY_PATHおよびLD_PRELOADを使用することで回避策があります。これらは、システム全体のライブラリをマスクして、アプリケーションをライブラリにポイントするのに役立ちます。この変数をグーグルで検索してください。

于 2010-02-07T03:30:18.257 に答える