VS2013 boost.python 编译错误,请教一下

就一个cpp文件,代码如下,基本上是复制一篇著名的文章(BuildingHybridSystemswithBoost.Python)中的代码,做一个dll给python调... 就一个cpp文件,代码如下,基本上是复制一篇著名的文章(Building Hybrid Systems with Boost.Python)中的代码,做一个 dll 给python调用:

#include "stdafx.h"
#define DLL_API __declspec(dllexport)
using namespace std;
struct World
{
void set(std::string msg) { this->msg = msg; }
std::string greet() { return msg; }
std::string msg;
};

#include <boost/python.hpp>
BOOST_PYTHON_MODULE(hello)
{
class_<World>("World")
.def("greet", &World::greet)
.def("set", &World::set)
;
}

报错如下

1>------ 已启动生成: 项目: MakeDLL, 配置: Debug Win32 ------
1> MakeDLL.cpp
1>d:\vcproject\makedll\makedll\makedll.cpp(50): error C2065: “class_”: 未声明的标识符
1>d:\vcproject\makedll\makedll\makedll.cpp(50): error C2275: “World”: 将此类型用作表达式非法
1> d:\vcproject\makedll\makedll\makedll.cpp(41) : 参见“World”的声明
1>d:\vcproject\makedll\makedll\makedll.cpp(51): error C2228: “.def”的左边必须有类/结构/联合
1> 类型是“const char [6]”
1>d:\vcproject\makedll\makedll\makedll.cpp(52): error C2228: “.def”的左边必须有类/结构/联合
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
bhtzu
2015-08-06 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4293万
展开全部
  1. 确认文件boost/python.hpp存在

  2. #include包含语句,应该放在源文件首部,其它代码之前(其它#include之后)

  3. 尝试增加作用域定义:

using namespace boost::python;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式