boost thread 在clr环境下编译出错的问题

出错信息为:

1> LINK : 已指定 /LTCG,但不需要生成代码;从链接命令行中移除 /LTCG 以提高链接器性能
1>main.obj : error LNK2022: 元数据操作失败(8013119F): 现有的 TypeRef 应有对应的 TypeDef(dummy),但它没有: (0x01000020)。
1>LINK : fatal error LNK1215: 元数据操作失败(8013119F):

 

你只需要在一个cpp文件中添加

namespace boost {
struct boost::thread::dummy {};
}

即可通过编译。 可能是 bind展开后某个函数和.net的某个函数重名了,导致这个问题(boost1.49中还存在这个问题),新版的boost 1.53已经没有这个bug。

具体可见   http://www.daniweb.com/software-development/cpp/threads/291983/boost-threads-with-clr-dll-exe-works-fine

posted @ 2013-09-17 15:49  calabashdad  阅读(1464)  评论(3编辑  收藏  举报