无法在 Visual Studio 2008 中构建 Boost.python。编译出错
Posted
技术标签:
【中文标题】无法在 Visual Studio 2008 中构建 Boost.python。编译出错【英文标题】:Unable to Build Boost.python in Visual Studio 2008. Compilation gives error 【发布时间】:2013-09-15 20:34:46 【问题描述】:我现在很沮丧!我花了 2 天时间尝试使用 boost.python 。请指导我!我会解释我做了什么。
我有 Winows 7 64 位。 Python 是 64 位 2.7.3,安装在 C:\Python27_amd64。 现在,我将 boost_1_54_0.zip 解压到 F: 目录中。 我用cmd。
引导
这将创建 project-config.jam。我编辑它并插入
使用 msvc : 9.0 ; 使用python:2.7:C:\Python27_amd64\python:C:\Python27_amd64\include:C:\Python27_amd64\libs;
现在可以了
.\b2
这个过程运行了大约 20 分钟,我被告知 boost 已经成功构建。
之后我从 http://sourceforge.net/projects/boost/files/boost-binaries/ 安装 boost 二进制文件 二进制文件安装在 C:\local\boost_1_54_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);
我将VC++目录下的头文件和库分别设置为F:\boost_1_54_0\boost_1_54_0和F:\boost_1_54_0\boost_1_54_0\stage\lib。
我还设置了项目-->属性-->配置属性-->C/C++-->常规-->C:\Python27_amd64\include 的附加包含目录
同样,我也设置了项目-->属性-->配置属性-->链接器-->通用到 C:\Python27_amd64\libs;"C:\local\boost_1_54_0\lib64-msvc-9.0" .
现在当我使用 x64 调试器进行编译时。它给了我一个错误
test8.exe 中 0x00000000 处的未处理异常:0xC0000005:位置 0x0000000000000000 的访问冲突。
自从过去 2 天以来,我感到很震惊……但那是从那以后我最接近的一次。请帮帮我!
【问题讨论】:
【参考方案1】:所以你的意思是运行时错误,对吧? 我认为您应该首先确保 boost::python 本身没有抛出异常。 首先尝试使用 catch(...) 在 python 调用周围设置 try 块 如果捕获到异常,则很可能是 boost::python::error_already_set 异常。 因此,您应该像 here
一样对其进行解码【讨论】:
以上是关于无法在 Visual Studio 2008 中构建 Boost.python。编译出错的主要内容,如果未能解决你的问题,请参考以下文章
无法在现代 Windows 上启动 Visual Studio 2008 dll
无法在 Windows Server 2008 上运行 Visual Studio 2012 远程调试器
无法在 Visual Studio 2008 中构建 Boost.python。编译出错
ASP.NET 控件无法在 Visual Studio 2008 的代码隐藏中引用
无法显示Visual Studio 2008 Tools for Applications编辑器 - MSBuildToolsPath