thread——MFC下Boost的线程编译错误问题

在MFC项目中使用Boost线程库时遇到链接错误:__pRawDllMain已定义。解决方案包括注释掉boost源码中特定行或动态链接Boost库。选项1涉及设置预处理器定义,如BOOST_ALL_DYN_LINK,而选项2则考虑移除MFC需求。
摘要由CSDN通过智能技术生成

在MFC中使用boost的多线程库,可能会抛出链接错误:

__pRawDllMain already defined in ....

这是由于thread的源码中叶有一个入口函数

extern BOOL (WINAPI * const _pRawDllMain)(HANDLE, DWORD, LPVOID)=&dll_callback;

解决方法是将

boost/libs/thread/src/win32/tss_pe.cpp

中的这句话注释然后重新编译即可解决。

 

网上看到另一种方法,经测试失败,如果测试成功请告之

 

链接:http://www.juicydata.com/LinkingMfcAndBoostThread

原文如下:

Linking against Boost can sometimes be tricky, as a minor misconfiguration in your project / makefiles can cause the auto-link mechanism to operate differently than you expect. Here's one example of a failure during link:

libboost_thread-vc80-mt-1_40.lib(tss_pe.obj) : error LNK2005:
   __pRawDllMain already defined in mfcs80.lib(rawdllmainproxy.obj)
   Creating library c:\Work\MyLib\Release\MyLib.lib and object 
   c:\Wo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值