SFML - 无法加载图像 - 无法打开文件 - LINUX
SFML - failed to load image - unable to open file - LINUX
问题描述
我在 ubuntu (clion ide) 上开发我的项目,但我将分发更改为 xubuntu 并将相同的存储库克隆到它。不幸的是,我在项目中包含的每个图像都会生成此运行时错误:
Failed to load image "image.png". Reason: Unable to open file
SFML 已正确安装,因为我使用 SFML Site 中的标准程序对其进行了检查。我在 ubuntu.
上没有这个问题
我的尝试
我认为文件的权限有问题。所以我创建了示例项目(如下所示),添加了 player.png 并且我得到了同样的错误。所以我在终端中使用该命令:
chmod a+w player.png
它没有解决问题。我是 linux 的新人,所以也许还有其他事情要做,但我不知道。我也从这个网站和 SFML 论坛尝试了不同的方法,但它对我没有帮助。
我也试过加载其他图片,也不行。
代码
我创建了示例代码来查找问题。它只是来自 SFML Site.
的修改样本
#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 来完成。
查看 this question,您可以在其中找到描述这两种方式的答案。
问题描述
我在 ubuntu (clion ide) 上开发我的项目,但我将分发更改为 xubuntu 并将相同的存储库克隆到它。不幸的是,我在项目中包含的每个图像都会生成此运行时错误:
Failed to load image "image.png". Reason: Unable to open file
SFML 已正确安装,因为我使用 SFML Site 中的标准程序对其进行了检查。我在 ubuntu.
上没有这个问题我的尝试
我认为文件的权限有问题。所以我创建了示例项目(如下所示),添加了 player.png 并且我得到了同样的错误。所以我在终端中使用该命令:
chmod a+w player.png
它没有解决问题。我是 linux 的新人,所以也许还有其他事情要做,但我不知道。我也从这个网站和 SFML 论坛尝试了不同的方法,但它对我没有帮助。
我也试过加载其他图片,也不行。
代码
我创建了示例代码来查找问题。它只是来自 SFML Site.
的修改样本#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 来完成。
查看 this question,您可以在其中找到描述这两种方式的答案。