2016-12-09 135 views
0

嗨运行SFML库在NetBeans我想补充SFML在C++图形项目,但是当我尝试运行索姆基本代码我得到这个错误:广东话在Ubuntu

免费():无效的指针: 0x00000000009ace48 ***

而在在c netbeans的性质++编译器我已经添加了SFML /包括文件夹中的包括目录
而下接头和附加库目录我有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;系统:30毫秒

,我告诉在启动

是否有任何人知道的错误,如果它已添加的库错误的,也可以是什么我。感谢您的帮助

编辑: 现在我已经通过使用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 

回答

0

我想你已经添加的错库,你应该使用“-d”库在动态链接的情况下。 “-s-d”库被用于静态链接。如果你想使用静态链接,你需要在你的项目中为预处理器定义SFML_STATIC宏。你应该添加额外的库,比如opengl32.lib,等等。

+0

我改为“-d”文件,但没有帮助,我该如何添加opengl库?为什么当我使用makefile时需要添加它? – romaswe

+0

对于任何人来说,Google都会磕磕绊绊地回答这个问题,正如我所做的那样:SFML的-d文件是库的调试版本,与动态链接无关(例如sfml-window = dynamic linking,sfml-window-d = dynamic链接,调试版本,sfml-window-s =静态链接,sfml-window-sd =静态链接,调试版本)。 – SJFrK