用vc2010编译带有boost的项目出错,不明确符号

项目为console2:http://sourceforge.net/projects/consoleboost库:boost_1_44我下载了源码,是vc2008下面的... 项目为console2:http://sourceforge.net/projects/console
boost库:boost_1_44

我下载了源码,是vc2008下面的,用vc2010转化打开,编译说找不到boost\xxx的头文件,将boost库添加到项目头文件中,继续编译,出错了:
>e:\console2\shared\sharedmemory.h(51): error C2872: “shared_ptr”: 不明确的符号
1> 可能是“d:\boost\boost_1_44\boost\smart_ptr\shared_ptr.hpp(169) :boost::shared_ptr”
1> 或“d:\program\microsoft visual studio 10.0\vc\include\memory(1418) : std::tr1::shared_ptr”
e:\console2\shared\sharedmemory.h(64): 参见对正在编译的类 模板 实例化“SharedMemory<T>”的引用
展开
 我来答
志远823
2011-03-30 · TA获得超过2296个赞
知道小有建树答主
回答量:913
采纳率:66%
帮助的人:1180万
展开全部
boost的一些库,比如share_ptr已经被高版本的stl采纳了.如果你一块儿用编译器当然搞不清你要用那个了.我想你肯定写了这样的东西
using namespace std;
using namespace tr1;
using namespace boost;
实际上两个智能指针是一样的,你只需要用一个即可.如果你一定要两个都用,那么不要写上面的语句.而是应该写std::tr1::xxxx, boost:xxxx
niwho
2011-03-30
知道答主
回答量:11
采纳率:0%
帮助的人:10.2万
展开全部
楼上正解。编译器已经提示得够明确了,不知道shared_ptr是哪个命名空间里的。boosthe std::tr1 中都有定义,必须显示指定std::tr1::xxxx, boost:xxxx
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式