WTL向导生成的Dialog工程,使用了boost后,Release编译不了

leon7909 2009-07-10 02:56:51
环境是VS2008+windowsXPsp3+boost1.39,WTL向导生成的基本模态对话框的工程,只要一include<boost/thread.hpp>,生成Release版本时就会提示一百多个错误,生成DEBUG没有问题:
1>D:\Project\Boost\boost/function/function_template.hpp(80) : error C2143: 语法错误 : 缺少“;”(在“namespace”的前面)
1>D:\Project\Boost\boost/function/function_template.hpp(980) : error C2838: “()”: 成员声明中的非法限定名
1> D:\Project\Boost\boost/function/function_template.hpp(80): 参见对正在编译的类 模板 实例化“boost::function0<R>”的引用
1>D:\Project\Boost\boost/function/function_template.hpp(995) : error C2804: 二进制“operator ==”的参数太多
1>D:\Project\Boost\boost/function/function_template.hpp(1002) : error C2804: 二进制“operator !=”的参数太多
1>D:\Project\Boost\boost/function/function_template.hpp(1098) : error C2764: “R”: 部分专用化“boost::function<R(void)>”中未使用或不能推导出的模板参数
1>D:\Project\Boost\boost/function/function_template.hpp(1098) : error C3412: “boost::function<R(void)>”: 不能在当前范围内专用化模板
1>D:\Project\Boost\boost/function/function_template.hpp(90) : error C2061: 语法错误 : 标识符“function_buffer”
1> D:\Project\Boost\boost/function/function_template.hpp(96): 参见对正在编译的类 模板 实例化“boost::boost::detail::function::function_invoker1<FunctionPtr,R,T0>”的引用
1>D:\Project\Boost\boost/function/function_template.hpp(106) : error C2061: 语法错误 : 标识符“function_buffer”
1> D:\Project\Boost\boost/function/function_template.hpp(113): 参见对正在编译的类 模板 实例化“boost::boost::detail::function::void_function_invoker1<FunctionPtr,R,T0>”的引用
1>D:\Project\Boost\boost/function/function_template.hpp(122) : error C2061: 语法错误 : 标识符“function_buffer”




我想应该是环境的问题,请问有谁遇到过并解决吗?
...全文
134 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
老邓 2009-07-10
  • 打赏
  • 举报
回复
因为boost有些头文件不能放在stdafx.h:预编译头文件。
leon7909 2009-07-10
  • 打赏
  • 举报
回复
WTL设为内联的工程,大都是hpp档,实现和头直接在一起的
老邓 2009-07-10
  • 打赏
  • 举报
回复
#include <boost/thread.hpp>
别放在stdafx.h中,放在.cpp中,并且是其他头文件之后。
大前置 2009-07-10
  • 打赏
  • 举报
回复
帮顶~~

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧