SFML-无法加载映像-无法打开文件-LINUX

SFML - failed to load image - unable to open file - LINUX

本文关键字:文件 -LINUX 映像 加载 SFML-      更新时间:2023-10-16


问题描述

我在ubuntu(clion-ide)上开发我的项目,但我将发行版更改为xubuntu

Failed to load image "image.png". Reason: Unable to open file

SFML安装正确,因为我用SFML站点的标准程序进行了检查。我在ubuntu上没有那个问题。

我的尝试

我认为文件的权限有问题。所以我创建了一个示例项目(如下所示),添加了player.png,我得到了同样的错误。所以我在终端中使用这个命令:

chmod a+w player.png

它不能解决问题。我是linux的新手,所以也许还有更多的事情要做,但我不知道。我也尝试了不同的方式从这个网站和SFML论坛,但这对我没有帮助。
我也尝试加载其他图像,不起作用。

代码

我创建了一些示例代码来查找问题。这只是SFML网站的修改样本。

#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(400, 400), "SFML works!");
sf::Texture t;
t.loadFromFile("player.png");
sf::Sprite sprite;
sprite.setTexture(t);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(sprite);
window.display();
}
return 0;
}

解决方案和另一个问题:

有趣的是,

t.loadFromFile("../player.png");

解决了问题。默认情况下,sfml希望图像位于cmake-build-debug文件夹中。。。
如何将默认目录添加到我的项目中,而不是添加到cmake文件夹中

您正在寻找一个更改当前工作目录的选项。这可以使用CLion或CMake来完成。

看看这个问题,你可以找到描述这两种方式的答案。