无法在ubuntu上的netbeans中运行SFML库

时间:2016-12-09 22:55:24

标签: c++ ubuntu netbeans sfml

您好我想在c ++中为图形项目添加SFML但是当我尝试运行som基本代码时出现此错误:

  

free():指针无效:0x00000000009ace48 ***

在c ++编译器下的netbeans属性中,我在include目录中添加了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

1 个答案:

答案 0 :(得分:0)

我认为你添加了错误的库,在动态链接的情况下你应该使用“-d”库。 “-s-d”库用于静态链接。如果要使用静态链接,则需要为项目中的预处理器定义SFML_STATIC宏。您应该添加其他库,例如opengl32.lib和其他库。