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