14

デフォルトでlibboostpython.aは、 なしでコンパイルされます-fPIC。しかし、私はpython拡張機能を作成する必要があり、それは-fPIC静的ライブラリへのリンクを持つ動的ライブラリです。fromを使用して静的ライブラリ ( libboostpython.a)をコンパイルするにはどうすればよいですか?-fPICboost.python

4

2 に答える 2

18

使用できるオプションがいくつかあります。

  • ソースからブーストをコンパイルし、追加のコンパイラ オプションを bjam に渡します。例bjam ... cxxflags='-fPIC'。これにより、すべてのブースト ソース ファイルが位置に依存しないコードとしてコンパイルされます。
  • 共有ライブラリの形でブーストを使用します。この場合、適切なバージョンのブーストが使用されるように、アプリケーションと共にブースト共有ライブラリを出荷することをお勧めします。フラグを使用して実行可能ファイルをリンクすると'-Wl,-rpath,$ORIGIN'、ダイナミック リンカーが実行可能ファイルに必要な共有ライブラリを検索するときに、実行可能ファイルがあるディレクトリでそれらを検索することができます。の詳細については、 man ld.soを参照してください$ORIGIN
于 2012-09-14T08:05:12.233 に答える