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

[复制链接]
查看11 | 回复1 | 2011-4-2 07:42:18 | 显示全部楼层 |阅读模式
项目为console2:<a href=\"http://sourceforge.net/projects/console\" target=\"_blank\">http://sourceforge.net/projects/console</a>
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): 参见对正在编译的类 模板 实例化“SharedMemoryT”的引用
回复

使用道具 举报

千问 | 2011-4-2 07:42:18 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">boost的一些库,比如share_ptr已经被高版本的stl采纳了.如果你一块儿用编译器当然搞不清你要用那个了.我想你肯定写了这样的东西
using namespace std;
using namespace tr1;
using namespace boost;
实际上两个智能指针是一样的,你只需要用一个即可.如果你一定要两个都用,那么不要写上面的语句.而是应该写std::tr1::xxxx, boost:xxxx
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行