私はラズベリーパイの代わりにWindowsでブースト・パイソンを始めようとしているから、ブースト(またはその依存関係)に関する問題に直面しています。python36.lib
の代わりにpython27.lib
私はPython 3.6を使用しています)ブーストPython27ライブラリを維持する
私のラズベリーパイで、私は2倍になったバンドルされたpythonを使用していました。今、私はboost_python3とリンクしています。私はCMakeのすべての私のインクルードパスをチェックし、それらはすべて3.6のpythonパスを指しています。私は、私のシステム上でpython(1つのスタンドアロン2.7とcygwinの1つ)を別のバージョン(私はcygwinフォルダの名前をcygwin2
に変更し、スタンドアロンのpython 2.7フォルダを削除したもの)を含むすべてのパスの名前を変更しました。それはまだそのライブラリが欲しいです...
私のプログラムでは、私は単一の#include
がpythonに関連しており、それは#include <boost/python.hpp>
です。私はそれに続いてVisual Studioにインクルードして、私がCMakeで指定したboostディレクトリのpython.hppにつながっているので、解像度が働いています。 boost/python.hpp
の内部では、最終的にはwrap_python.hpp
になります。これには、Pythonヘッダーが含まれています。私もVisual Studioでこれを追跡し、Python 3.6フォルダのファイルにつなぎます。
そのインクルード(コメントを削除)にコメントを追加するとプログラムがコンパイルされるので、私は誤ってCMakeにライブラリとして追加していませんでした。どこか#pragma comment
である必要があります。だから、総括する
:
- 私はどこにでも のpython 3.6を使用しています "修正" それ
- を含ん私だけ
boost/python.hpp
コメント解除 - 後を含め、私のコード
- には
#include <Python.h>
はありません - CMakeのブーストの自動リンクを無効にしました
add_definitions(... -DBOOST_ALL_NO_LIB -DBOOST_PYTHON_DEBUG)
私の質問(複数可):これを引き起こしている可能性がありますまたは何
- ?ブーストは直接Pythonライブラリにリンクしていますか?
- プリプロセッサが
#pragma
に遭遇するすべてのファイル/行をVisual Studioで何らかの形で強調表示する可能性はありますか?(私はそれが何とかどこかで2.7 pythonを取得していると確信しています。 。)
ブーストオートリンクが無効になっていますか?私はそれが自動的にpythonライブラリとオートリンクするとは思わないが、 'boost_python3'ではなく' boost_python'を引っ張っているかもしれない。 –
ああ、ありがとう、私はそれを言及することを完全に忘れていた、私は私の質問にそれを編集します! (はい、私はそれを無効にしました) – Cromon
小さなソースファイルとこの問題を再現するCMakeLists.txtを使って[mcve]を作成し、それらをあなたの投稿に含めることができますか? –