当我在带有ATL头的Visual 2008 Win32 SP1中创建一个新的<atlbase.h>项目(Windows应用程序)时,仅包含<atlbase.h>就会给我以下警告:
TempATL.obj : warning LNK4254: section 'ATL' (50000040) merged into '.rdata' (40000040) with different attributes当我还包括来自WTL的<atlapp.h>时,我会得到以下其他警告:
atlsd.lib(Externs.obj) : warning LNK4254: section 'ATL' (50000040) merged into '.rdata' (40000040) with different attributes
atlsd.lib(AtlDebugAPI.obj) : warning LNK4254: section 'ATL' (50000040) merged into '.rdata' (40000040) with different attributes
atlsd.lib(Allocate.obj) : warning LNK4254: section 'ATL' (50000040) merged into '.rdata' (40000040) with different attributes
atlsd.lib(atltrace.obj) : warning LNK4254: section 'ATL' (50000040) merged into '.rdata' (40000040) with different attributes
atlsd.lib(AtlTraceModuleManager.obj) : warning LNK4254: section 'ATL' (50000040) merged into '.rdata' (40000040) with different attributes解决这些警告的正确方法是什么?
编辑:
我刚刚发现发生这种情况是因为我已经将Visual 2008转换为使用VisualC++ 2010编译器和2008年库。如果有人知道如何修复这个(其他),而不是切换回旧的编译器,那么请发布。:)
发布于 2012-04-12 23:23:15
我猜您正在运行MSVC的Express版本,并使用Windows中的atl。要消除这些警告,只需在链接器的附加命令行选项中添加/ignore:4254 /ignore:4078即可。
请参阅:包含在WDK7.1中的ATL8.0使链接器生成了将近800 LNK4254.
https://stackoverflow.com/questions/10116800
复制相似问题