2

Visual Studio 2008 SP1でATLヘッダーを使用して新しいWin32プロジェクト(Windowsアプリケーション)を作成すると、を含めるだけで次の<atlbase.h>警告が表示されます。

TempATL.obj : warning LNK4254: section 'ATL' (50000040) merged into '.rdata' (40000040) with different attributes

<atlapp.h>WTLからも含めると、次の追加の警告が表示されます。

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

これらの警告を解決する適切な方法は何ですか?


編集:

VisualStudio2008を2008ライブラリでVisualC++ 2010コンパイラを使用するように切り替えたため、これらが発生していることがわかりました。古いコンパイラに戻す以外にこれを修正する方法を誰かが知っている場合は、投稿してください。:)

4

1 に答える 1

2

MSVC の Express バージョンを実行していて、Windows SDK の atl を使用していると思います。これらの警告を取り除くには/ignore:4254 /ignore:4078、リンカーの追加のコマンド ライン オプションに追加するだけです。

参照: WDK 7.1 に含まれる ATL 8.0 により、リンカーは約 800 の LNK4254 を生成します...

于 2012-04-12T23:23:15.583 に答える