c ++链接器错误LNK2005已在SDL中定义

时间:2016-08-31 14:29:34

标签: c++ sdl linker-errors

我正在使用VS2005编译我的程序。我正在链接到SDL静态库,并且收到以下链接器错误;

1>LIBCMTD.lib(fpinit.obj) : error LNK2005: __fltused already defined in SDL2d.lib(SDL_stdlib.obj)
1>LIBCMTD.lib(ftol2.obj) : error LNK2005: __ftol2_sse already defined in SDL2d.lib(SDL_stdlib.obj)
1>   Creating library ..\..\..\product\VS2005\libs\\Standalone.lib and object ..\..\..\product\VS2005\libs\\Standalone.exp
1>..\..\..\product\VS2005\libs\\Standalone.exe : fatal error LNK1169: one or more multiply defined symbols found

我使用相同的VS2005编译器编译了SDL2d.lib。我最初的想法是,我为这些项目设置了不匹配的运行时库设置。但是在检查之后它们都被设置为多线程调试。

我刚刚注意到上面的链接器输出似乎在创建Standalone.exe之前创建了Standalone.lib和Standalone.exp。我不知道它为什么要制作.lib和.exp

出现此错误的任何其他原因?

由于

1 个答案:

答案 0 :(得分:6)

Needed to define HAVE_LIBC in the SDL project. This stopped the multiple redefinition of both _ftlused and _ftol2_sse