0

当我尝试在 Codeblocks 上安装 SFML 时遇到问题。好吧,首先我安装代码块: codeblocks-20.03mingw-setup.exe 。在我下载 SFML 2.5.1: GCC 5.1.0 TDM (SJLJ) - Code::Blocks - 32-bit 之后编译正确。

接下来,我提取 SFML 文件。问题出在我将“BIN”的内容复制到我的代码块项目中。一个视频可以帮助我完成之前的所有工作,我编写了所有的库:图形、窗口、网络、音频、系统,但什么都没有。我告诉你错误:

cannot find -lsfml-audio-d-2

并继续网络、窗口、系统、图形

最后:

error: ld returned 1 exit status

怎么了?请帮帮我。解决此问题后,我必须立即使用 CODEBLOCKS 制作视频游戏。我会非常感谢你的回答。

4

1 回答 1

0

在 SFML 下载网站 ( https://www.sfml-dev.org/download/sfml/2.5.1/ ) 上,它说:
The compiler versions have to match 100%!

CodeBlocks 20.03 MinGW 安装包括 GCC 编译器的 8.1.0 版本(如下载页面所述:http: //www.codeblocks.org/downloads/26)。

因此,您下载的 SFML 版本仅适用于 GCC 5.1.0 版本,但您的版本为 8.1.0。这可能会导致许多错误。

有几种方法可以解决您的问题:

  1. 理论上,您可以使用特定的编译器自己编译 SFML,但此选项可能非常复杂。

  2. 您可以使用具有匹配版本的编译器。在 SFML 下载网站上,有一些指向所需编译器的链接。安装编译器后,您必须配置 CodeBlocks 以检测系统上的新编译器(参考:将编译器添加到 code::blocks)。现在,为了将 SFML 添加到您的项目中,我建议使用此官方指南: https ://www.sfml-dev.org/tutorials/2.5/start-cb.php

  3. 您可以使用像 MSYS2(我个人使用)这样的环境来拥有一个包管理器来管理您的编译器和库安装。这样,您的编译器安装和您的库应该可以相互配合。但是为了在 CodeBlocks 中使用这个编译器,必须配置 CodeBlocks。

我建议您参考选项 2,因为它可能是最快的解决方案。

如果您还有其他问题,请随时询问。我从个人经验中知道,设置 SFML(或任何其他 C++ 库)以使用您的 IDE 可能非常棘手。

于 2020-06-17T16:36:07.280 回答