我正在尝试包装一些 C++ 函数以在 python 中使用。例如,这里是 boost Python 教程中的函数。
// Copyright Joel de Guzman 2002-2004. Distributed under the Boost
// Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
// Hello World Example from the tutorial
// [Joel de Guzman 10/9/2002]
#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
char const* greet()
{
return "hello, world";
}
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
当我将其编译为 .pyc 文件并尝试将其导入 python 时,我收到错误:
ImportError: Bad magic number in C:\hello_ext.pyc
我已经使用另一个论坛的方法检查了魔数(Magic Number),它似乎是错误的。我用谷歌搜索,但无法找到有关此错误消息的任何有用信息。我怀疑这是我的 Visual Studio 项目文件中的错误设置,或者可能是我编译 boost 的方式有问题?
我使用的是 Visual Studio 2010 Service Pack 1、Python 2.7.3 和 boost 1.53
我使用以下选项编译了 boost。
b2 install toolset=msvc-10.0 variant=debug,release threading=multi link=shared runtime-link=shared --prefix="C:\boost"
我是一名优秀的程序员,十分优秀!