1

VS10プロジェクトを取得しました。Pythonで使用できるようにC++コードを作成したいと思います。私はブーストチュートリアルに従い、それを機能させました。ただし、VSはboost-python-vc100-mt-gd-1_44.libをリンクし続けますが、これはboost-python-vc100-mt-gd-1_44.dllを呼び出す単なるラッパーです。そのため、.dllを.dll(.pyd)ファイルと一緒にコピーする必要があります。だから私はboost:pythonを静的にその.dll(.pyd)ファイルにリンクしたいと思います。しかし、VSまたはコンパイラとリンカのマニュアルに構成オプションが見つかりません。最も奇妙なことは、同じ構成でboost :: filesystemを使用している古いプロジェクトが1つあることですが、そのプロジェクトは静的libであるlibboost-filesystem-*。libに対してリンクしているため、問題ありません。私は何の成功もなく数時間グーグルをしてきました、そしてそれは私を夢中にさせます。

助けや提案をありがとう。

4

2 に答える 2

1

あなたはおそらくそれをしたくないでしょう。静的にリンクされたBoostpythonには、複数のBoostpythonベースのライブラリがインポートされている場合に多くの問題と癖があります。「でも私には1つしかない」とあなたは言います。ユーザーが別のユーザーを持たないことを保証できますか?将来、別のものを使用したいと思うかもしれませんか?DLLに固執します。別のDLLを配布することは、実際にはそれほど大きな問題ではありません。同じディレクトリに並べて配置するだけです。

于 2010-11-10T16:18:26.213 に答える
0

リンクされるライブラリは、プロジェクトの設定によって異なります。2つの可能性があります:あなたはに対して構築することができます

  1. 静的に
  2. 動的に

リンクされたバージョンのc-runtimeライブラリ。選択したオプションに応じて、ブーストは適切な#pragmaものをリンカーに送信します。これらのオプションは、プログラムを構成するすべてのプロジェクトで一貫して設定する必要があります。したがって、「プロパティ-> c ++->コード生成」(または同様の、私は推測している、現在VSを稼働させていない)に移動し、正しいオプションが(一貫して)設定されていることを確認します。もちろん、事前に必要な形式でBoostライブラリをコンパイルしておく必要があります...

于 2010-11-08T07:12:58.710 に答える