Pet*_*mmo 7 mfc dynamic-linking boost-thread static-linking
在工作中,我们有一个MFC扩展DLL,使用1.35构建良好但是当使用1.43构建时会导致以下错误:
error LNK2005: __pRawDllMain already defined in ApObs.obj
Run Code Online (Sandbox Code Playgroud)
如果我激活BOOST_LIB_DIAGNOSTIC旧构建列表:
linking to lib file: libboost_thread-vc71-mt-gd-1_35.lib
Run Code Online (Sandbox Code Playgroud)
和
linking to lib file: libboost_thread-vc71-mt-gd-1_43.lib
Run Code Online (Sandbox Code Playgroud)
所以没有改变与哪个库链接
完整的错误消息是:
libboost_thread-vc71-mt-gd-1_43.lib(tss_pe.obj) : error LNK2005: __pRawDllMain already defined in ApObs.obj
Run Code Online (Sandbox Code Playgroud)
我在两个库版本中都在tss_pe.cpp上做了一个diff,它们是相同的,所以我不确定是什么问题.
你可以通过定义消息消失,BOOST_THREAD_USE_DLL但是我们需要发布BOOST_THREAD-VC71-MT-GD-1_43.DLL,所以我不认为这是最好的解决方案.
这是由于链接顺序而发生的。您可以通过在附加依赖项
中手动添加库来更改链接错误。
就我而言,在其他冲突的库之前放置 libboost_thread-vc71-mt-gd-1_43.lib 解决了问题:
项目 -> 属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项
libboost_thread-vc80-mt-1_40.lib;mfcs80u.lib;%(附加依赖项)
请注意,就我而言,它与 mfcs80u.lib 冲突
| 归档时间: |
|
| 查看次数: |
1839 次 |
| 最近记录: |