Visual studio 无法在Visual Studio 2008中生成Boost.python。编译出错
我现在很沮丧!我花了两天时间尝试使用boost.python。请引导我!我会解释我做了什么 我有Winows7 64位。 Python是64位的2.7.3版本,安装在C:\Python27\u amd64上。Visual studio 无法在Visual Studio 2008中生成Boost.python。编译出错,visual-studio,python-2.7,boost-python,Visual Studio,Python 2.7,Boost Python,我现在很沮丧!我花了两天时间尝试使用boost.python。请引导我!我会解释我做了什么 我有Winows7 64位。 Python是64位的2.7.3版本,安装在C:\Python27\u amd64上。 现在,我使用boost_1_54_0.zip并在F:目录中解压。 我使用cmd 引导 这将创建project-config.jam。我编辑它并插入 使用msvc:9.0; 使用python:2.7:C:\Python27\u amd64\python:C:\Python27\u amd64
现在,我使用boost_1_54_0.zip并在F:目录中解压。 我使用cmd 引导 这将创建project-config.jam。我编辑它并插入 使用msvc:9.0; 使用python:2.7:C:\Python27\u amd64\python:C:\Python27\u amd64\include:C:\Python27\u amd64\libs 现在我知道了 .\b2 这个过程运行了20多分钟,我被告知boost已经成功构建 之后,我从安装boost二进制文件 二进制文件安装在C:\local\boost\u 1\u 54\u 0中 现在我想创建一个通用项目
现在,我使用C++中嵌入Python的代码在
#include <boost/python.hpp>
#include <boost/detail/lightweight_test.hpp>
#include <iostream>
namespace py = boost::python;
using namespace std;
int main()
{
// Initialize the interpreter
Py_Initialize();
py::object main_module = py::import("__main__");
py::object main_namespace = main_module.attr("__dict__");
py::exec("print 'Hello, world'", main_namespace);
py::exec("print 'Hello, world'[3:5]", main_namespace);
py::exec("print '.'.join(['1','2','3'])", main_namespace);
#包括
#包括
#包括
名称空间py=boost::python;
使用名称空间std;
int main()
{
//初始化解释器
Py_初始化();
py::object main_module=py::import(“_main__;”);
py::object main_namespace=main_module.attr(“u dict_u”);
py::exec(“打印‘Hello,world’”,主名称空间);
py::exec(“打印‘Hello,world’[3:5]”,main_名称空间);
py::exec(“print.”。join(['1','2','3']),main_名称空间);
}
我将VC++目录中的头文件和库分别设置为F:\boost\u 1\u 54\u 0\boost\u 1\u 54\u 0和F:\boost\u 1\u 54\u 0\boost\u 1\u 54\u 0\stage\lib
我还将项目-->属性-->配置属性-->C/C++-->常规-->附加包含目录设置为C:\Python27\u amd64\Include
同样,我还将项目-->属性-->配置属性-->链接器-->常规设置为C:\Python27\u amd64\libs;“C:\local\boost\u 1\u 54\u 0\lib64-msvc-9.0”
现在,当我使用x64调试器编译时。这给了我一个错误
test8.exe中0x00000000处未处理的异常:0xC0000005:位置0x0000000000000000处的访问冲突
从过去的两天开始我就被打动了…但这是我从那时起最接近的一次。请帮帮我 那么你的意思是运行时错误,对吗? 我认为您应该首先确保boost::python本身不会引发异常。 首先尝试使用catch(…)在python调用周围设置try块 如果捕获到异常,则很可能是boost::python::error\u ready\u set异常。 那么,你应该像这样解码它