系统:XP3
IDE:VS2005
程序类型:MFC扩展动态库
BOOST版本:1.39
链接BOOST方式:静态
程序代码片段:#include <boost/thread/thread.hpp>
...
...
boost::thread_group threadGroup; // 只定义了这个,其它的什么都没开始做,编译时报错
编译出错提示:
1>libboost_thread-vc80-mt-gd-1_39.lib(tss_pe.obj) : error LNK2005: __pRawDllMain 已经在 TestBoost.obj 中定义
1> 正在创建库 D:\MyStudio\Code\Vc\测试工程\TestBoostAAA\Debug\TestBoost.lib 和对象 D:\MyStudio\Code\Vc\测试工程\TestBoostAAA\Debug\TestBoost.exp
1>D:\MyStudio\Code\Vc\测试工程\TestBoostAAA\Debug\TestBoost.dll : fatal error LNK1169: 找到一个或多个多重定义的符号
换了最新的1.47问题依旧,但如果是在主程序(EXE)中使用则不会出错,或者使用动态方式链接BOOST也不会出错。
IDE:VS2005
程序类型:MFC扩展动态库
BOOST版本:1.39
链接BOOST方式:静态
程序代码片段:#include <boost/thread/thread.hpp>
...
...
boost::thread_group threadGroup; // 只定义了这个,其它的什么都没开始做,编译时报错
编译出错提示:
1>libboost_thread-vc80-mt-gd-1_39.lib(tss_pe.obj) : error LNK2005: __pRawDllMain 已经在 TestBoost.obj 中定义
1> 正在创建库 D:\MyStudio\Code\Vc\测试工程\TestBoostAAA\Debug\TestBoost.lib 和对象 D:\MyStudio\Code\Vc\测试工程\TestBoostAAA\Debug\TestBoost.exp
1>D:\MyStudio\Code\Vc\测试工程\TestBoostAAA\Debug\TestBoost.dll : fatal error LNK1169: 找到一个或多个多重定义的符号
换了最新的1.47问题依旧,但如果是在主程序(EXE)中使用则不会出错,或者使用动态方式链接BOOST也不会出错。
解决方案 »
- vs2010遇到“OLE初始化失败”错误
- 【求助】请问VC++中如何向已存在的xml文件中添加一个节点?
- VC ADO给oracled存储过程传递数组参数问题
- Static控件画图问题
- 关于CFileDialog打开指定文件名格式的问题
- OnCreate里调用GetClientRect(&rect)是不是无法取到Rect? 得到(0,0,0,0)
- 关于多线程的问题!!!!!!!!!
- debug无错,release出错,不知是啥原因啊
- 在CBitmap类里调用LoadBitmap()时要求位图是一个资源文件,有没有办法在程序运行时才决定调用哪一个位图?
- 编辑框默认值问题!.SetWindowsText("0")
- 用MFC进行COM编程添加接口出现错误.
- 试图越过其尾端对一未命名文件进行写
因此,如果想要在动态库中使用boost.thread,必须采样动态链接。