我刚刚开始使用c ++和SFML,一切都很好。在我得到Undefined Reference Errors之前,我意识到我一直在下载错误类型的SFML,得到SJLJ而不是DW2。问题已解决,但被另一个问题所取代;现在每当我运行SFML程序时,它都会打开一个小窗口:
它说:
程序无法启动,因为缺少sfml-graphics-2.dll 你的电脑。尝试重新安装该程序以解决此问题。
然后当您按“确定”或关闭窗口时,程序将停止工作。不要混淆:程序从未在控制台上打开过程。
以下是从codeblocks教程网站直接复制和粘贴的代码(可能无用):
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
答案 0 :(得分:5)
默认情况下,SFML是动态链接的,这意味着您需要将sfml-graphics-2.dll(以及您使用的任何其他SFML子系统的dll文件)放在与可执行文件相同的目录中。
答案 1 :(得分:5)
从主dll
目录复制所有SFML > bin
个文件并将其粘贴到项目文件夹中。就我而言,它是C:\Users\myname\Documents\Visual Studio 2017\SFML\SFML
如果您只想运行exe
文件。将所有dll
个文件放在与主exe
文件相同的目录中。
答案 2 :(得分:0)
我有类似的问题。我的错误是当我在编译器设置中链接库时,我忘了添加后缀&#34; -s-d&#34;。此结尾允许编译器和调试器正常运行。
答案 3 :(得分:0)
最佳选择是从 SFML-2.4.2&gt;复制所有.dll文件。仓即可。过去他们 C:&gt; Windows&gt; System32 文件夹。这就是你需要做的。 然后运行您的程序。 你将能够运行它。