繁体   English   中英

SFML 2.1 RenderWindow链接错误

[英]SFML 2.1 RenderWindow linking error

我的代码:

#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window");

    while(window.isOpen())
    {
        sf::Event Event; 
        while(window.pollEvent(Event))
        {
            if(Event.type == sf::Event::Closed || Event.key.code == sf::Keyboard::Escape)
                window.close();
        }

        window.display();
    }
    return 0; 
}

我的编译器调用:

g++ main.cpp -framework SFML -lsfml-graphics -lsfml-window -lsfml-system

错误信息:

Undefined symbols for architecture x86_64:
      "sf::RenderWindow::RenderWindow(sf::VideoMode, sf::String const&, unsigned int, sf::ContextSettings const&)", referenced from:
      _main in cc8BMfpR.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

我忘记链接的库中的RenderWindow吗? 我以为它在“窗口”中。.我正在运行SFML 2.1,并尝试了各种链接组合,所有这些都给我链接错误。 此链接链是给我最少错误的链接,即RenderWindow错误。 有人帮我弄清楚吗? 我在这里有点茫然。 我在Mac OS 10.8上运行。

我忘记链接的库中的RenderWindow吗? 我以为它在“窗口”中。

它在图形包中。 因此在sfml-graphics中。 但是您已经链接了那个。 但是,您不应该针对SFML.framework链接(它仅包含头文件)。

如前所述在这里 ,您可以使用框架或dylibs。 您的程序可以使用以下任意一种进行编译:

g++ main.cpp -lsfml-graphics -lsfml-window -lsfml-system

要么

g++ main.cpp -framework sfml-graphics -framework sfml-window -framework sfml-system

现在,关于架构x86_64未定义符号错误,我只能猜测您没有从下载页面下载兼容版本。 如果要使用g ++,请下载“ GCC”版本。

或者,切换到clang (例如,您可以在这里看到clang比GCC更快。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM