gpt4 book ai didi

c++ - SDL2,错误 LNK2005 对象已在 libcmt 中定义

转载 作者:行者123 更新时间:2023-11-30 04:07:14 31 4
gpt4 key购买 nike

所以这是一个常见错误,但所有帖子都说我需要更加注意我包含的库版本。我正在使用 SDL2、OpenGL 和 SDL_Mixer...除了坚持使用 32 位库外,我没有任何选择。

调试编译正常,但发布给我 LNK2005 错误,除非我将运行时库设置为/MD。我想避免这种额外的依赖。除非 Visual Studio 启动发布版本,否则生成的可执行文件将停止响应 SDL 初始化或某些 OpenGL 调用。所以我遇到了某种多线程问题,但我还没有完全理解它。帮助不大?

更新:/FORCE:MULTIPLE 允许使用/MT 编译项目。但就像/MD 一样,除非 visual studio 启动发布版本,否则生成的可执行文件会崩溃。这是什么意思?

更新 2:在 SDL 项目中使用/MD。崩溃只是调试器没有捕捉到的内存错误。链接无关。

最佳答案

好的,所以我看到的唯一其他选择是

(1) 忽略导致 LNK2005 错误的 other 库(因为你在两个地方定义了一些东西,它不知道使用哪个。因为忽略 libcmt.lib 导致了很多问题,也许可以尝试定义该方法的其他地方)。

2) 在您的链接器命令行选项中使用/FORCE:MULTIPLE,这将允许一个符号的多个定义。

关于c++ - SDL2,错误 LNK2005 对象已在 libcmt 中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22574516/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com