【发布时间】:2016-12-09 22:55:24
【问题描述】:
您好,我想为 C++ 中的图形项目添加 SFML,但是当我尝试运行 som 基本代码时出现此错误:
free():无效指针:0x00000000009ace48 ***
在 c++ 编译器下的 netbeans 属性中,我在包含目录中添加了 SFML/include 文件夹
在链接器和库目录下,我有 sfml/lib 文件夹
最后在链接器和库中,我按顺序添加了 sfml-graphics-s-d、sfml-audio-s-d、sfml-network-s-d、sfml-window-s-d 和 sfml-system-s-d。
这是我要运行的代码:
#include <cstdlib>
#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;
}
SFML窗口正在打开并直接关闭,然后我得到:
运行完成;中止;核心转储;实时:240ms;用户:20ms;系统:30ms
以及我在开始时告诉的错误
有人知道是不是我添加了错误的库或者它可能是什么。感谢帮助
编辑: 现在我已经通过使用makefile并在文本编辑器中编写它来解决它,但我想知道我是否可以在netbeans中使用相同的方法?
这就是我的 makefile 的外观和工作方式,但我希望能够在 netbeans 中完成所有操作:
all:
g++ -std=c++11 *.cpp -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system
clean:
rm -rf *.o sfml-app
【问题讨论】: