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

标签 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

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

谢谢

最佳答案

需要在SDL项目中定义HAVE_LIBC。这停止了​​ _ftlused 和 _ftol2_sse 的多重重新定义

关于C++链接器错误LNK2005已在SDL中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39252385/

相关文章:

c++ - 何时使用 const char * 以及何时使用 const char []

c++ - C++ 中的指针作用域

c++ - SDL 1.3 : how to inplement simple scale-9-grid for image resize?

c++ - 什么是 undefined reference /未解析的外部符号错误以及如何修复它?

c - Lapacke in C : using dsymm, 链接器错误

c++ - 为什么 IHTMLImgElement 方法 put_src 在从线程调用时返回 E_OUTOFMEMORY?

c++ - (C++)计算文本文件中数组的反转,每行一个数组?

SDL_SetVideoMode 与 SDL_CreateRGBSurface

c++ - SDL 和 zlib 问题,无法从 zip 创建有效的 rwops 结构

ios - 使用 GoogleSignIn 时出现异常