boost python保持链接python27库

时间:2017-07-15 12:16:12

标签: python c++ visual-studio boost

几天以来我试图开始在Windows上使用boost python而不是我的覆盆子pi,我正面临着与Boolean visibilitySearch= sharedPreferences.getBoolean("visibilitySearch", false); 而非{{1}链接的提升(或其某些依赖关系)的问题(我正在使用Python 3.6)

在我的覆盆子pi上,我使用的是捆绑的python,恰好是2.X并且与boost_python相关联。现在在Windows上我连接到boost_python3。我检查了CMake中的所有包含路径,它们都指向3.6 python路径。我甚至在我的系统上重命名了包含python(一个独立的2.7和一个在cygwin中)的不同版本的所有路径(我将cygwin文件夹重命名为python27.lib并删除了独立的python 2.7文件夹)。它仍然想要那个库......

在我的程序中,我有一个与python相关的python36.lib,而且是cygwin2。我跟着它包含在visual studio中,它引导我到我在CMake中指定的boost目录中的python.hpp,这样分辨率就可以了。在#include内,最终你会到#include <boost/python.hpp>,其中包含python标题。我也在Visual Studio中关注它们,它将我引导到Python 3.6文件夹中的文件。

添加注释包括(删除它)使程序编译正常,所以我不小心将它作为库添加到CMake中。它必须在某处boost/python.hpp

总结一下:

  • 我的代码中没有wrap_python.hpp
  • 我只包含#pragma comment一次
  • 取消注释包括&#34;修复&#34;它
  • 我到处都在使用python 3.6
  • 我使用#include <Python.h>
  • 禁用了CMake中的自动链接

我的问题:

  • 是谁或是什么导致了这个? boost是否直接链接python库?
  • 在Visual Studio中是否有可能以某种方式突出显示预处理器遇到boost/python.hpp的所有文件/行所以我可以跟踪它(因为我很确定它某处某处得到2.7 python我不是意识到......)

1 个答案:

答案 0 :(得分:0)

I just went through this Boost将检查PY_MAJOR_VERSION以确定要链接的库。所以在c++ > General > Additional Include Directories中,添加你的python包含路径,以便boost可以看到PY_MAJOR_VERSION == 3。如果没有,它将默认拉入2.x库。