c++ - Linker error with SFML -
i series of errors when running g++ -lsfml-window -lsfml-graphics -lsfml-system main.cpp on example sfml code, when running ubuntu, sfml 2.2 , g++ 4.8.2. i've tried reinstalling sfml package manager (libsfml-dev) , nothing works.
example sfml code:
#include <sfml/graphics.hpp> #include <string> 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; } error message:
/tmp/ccvg6gjg.o: in function `main': main.cpp:(.text+0xf7): undefined reference `sf::string::string(char const*, std::locale const&)' main.cpp:(.text+0x115): undefined reference `sf::videomode::videomode(unsigned int, unsigned int, unsigned int)' main.cpp:(.text+0x148): undefined reference `sf::renderwindow::renderwindow(sf::videomode, sf::string const&, unsigned int, sf::contextsettings cons' main.cpp:(.text+0x182): undefined reference `sf::circleshape::circleshape(float, unsigned int)' main.cpp:(.text+0x18e): undefined reference `sf::color::green' main.cpp:(.text+0x196): undefined reference `sf::shape::setfillcolor(sf::color const&)' main.cpp:(.text+0x1b6): undefined reference `sf::window::close()' main.cpp:(.text+0x1cf): undefined reference `sf::window::pollevent(sf::event&)' main.cpp:(.text+0x1f7): undefined reference `sf::color::color(unsigned char, unsigned char, unsigned char, unsigned char)' main.cpp:(.text+0x214): undefined reference `sf::rendertarget::clear(sf::color const&)' main.cpp:(.text+0x22b): undefined reference `sf::renderstates::default' main.cpp:(.text+0x236): undefined reference `sf::rendertarget::draw(sf::drawable const&, sf::renderstates const&)' main.cpp:(.text+0x245): undefined reference `sf::window::display()' main.cpp:(.text+0x254): undefined reference `sf::window::isopen() const' main.cpp:(.text+0x27f): undefined reference `sf::renderwindow::~renderwindow()' main.cpp:(.text+0x2a9): undefined reference `sf::renderwindow::~renderwindow()' main.cpp:(.text+0x2ee): undefined reference `sf::renderwindow::~renderwindow()' /tmp/ccvg6gjg.o: in function `sf::circleshape::~circleshape()': main.cpp:(.text._zn2sf11circleshaped2ev[_zn2sf11circleshaped5ev]+0x13): undefined reference `vtable sf::circleshape' main.cpp:(.text._zn2sf11circleshaped2ev[_zn2sf11circleshaped5ev]+0x1f): undefined reference `vtable sf::circleshape' main.cpp:(.text._zn2sf11circleshaped2ev[_zn2sf11circleshaped5ev]+0x2b): undefined reference `sf::shape::~shape()' collect2: error: ld returned 1 exit status
there 2 ways solve issue. first swap of options command goes this: g++ main.cpp -lsfml-window -lsfml-graphics -lsfml-system. second option try updating g++ version 4.9.2, can achieved on ubuntu by doing this
Comments
Post a Comment