编译ATL工程的连接错误:msvcrt.lib(dllsupp.obj) : error LNK2005: __fltused already defined in StdAfx.obj
ecai 2002-04-25 09:12:32 一个ATL工程, DEBUG版本已经通过,编译 ReleaseMinSize版本时出现以下错误:
Linking...
msvcrt.lib(dllsupp.obj) : error LNK2005: __fltused already defined in StdAfx.obj
msvcrt.lib(dllsupp.obj) : warning LNK4006: __fltused already defined in StdAfx.obj; second definition ignored
Creating library ReleaseMinSize/VideoMod.lib and object ReleaseMinSize/VideoMod.exp
ReleaseMinSize/VideoMod.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
说明:
1: _fltused 是在 atlimpl.cpp中定义的变量(Line 106)
#if !defined(_M_ALPHA) && !defined(_M_PPC)
//RISC always initializes floating point and always defines _fltused
extern "C" const int _fltused = 0;
#endif
2: atlimpl.cpp 在 stdafx.cpp 中被包含(AppWizard自动生成的代码):
// stdafx.cpp
#include "stdafx.h"
#ifdef _ATL_STATIC_REGISTRY
#include <statreg.h>
#include <statreg.cpp>
#endif
#include <atlimpl.cpp>
Thank first!