【问题标题】:Undefined symbol - Symbol lookup error未定义的符号 - 符号查找错误
【发布时间】:2012-06-19 06:10:13
【问题描述】:

我正在尝试使用 Eclipse 编译 SFML 2.0 教程。该程序编译正常,但是当我运行它时出现以下错误:

/home/eXistys/workspace/SFML/Debug/SFML:符号查找错误:/home/eXistys/workspace/SFML/Debug/SFML:未定义符号:_ZN2sf12RenderStates7DefaultE

GCC C++ 编译器 > 包含下,我有:

  • /home/eXistys/SFML/include

在 GCC C++ Linker 下我有:

  • `sfml 图形
  • `sfml 窗口
  • `sfml 系统

这可能是什么? Google 没有给出任何结果,SFML 论坛没有给出任何有用的信息,而且我找不到任何与 stackoverflow 真正相关的内容。

这是我编译成功的代码(this tutorial的源码):

#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(300, 200), "SFML works!");
    sf::Text text("Hello SFML");

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(text);
        window.display();
    }

    return 0;
}

我从这里下载了 SFML 2.0 的最新快照:https://github.com/LaurentGomila/SFML

亲切的问候,

【问题讨论】:

  • 你是否在eclipse的项目选项中添加了SFML库?
  • 是的,我有。在 GCC C++ Compiler > Includes 下,我有 /home/eXistys/SFML/include,在 GCC C++ Linker 下,我有 /home/eXistys/SFML/sfml2-build/lib 和 sfml-graphics、sfml-window、sfml-system订购。

标签: c++ linux eclipse sfml


【解决方案1】:

您缺少的是sf::RenderStates::Default。它在 RenderStates.cpp 中声明,它应该是 sfml-graphics 的一部分。您确定 sfml-graphics 与您的程序相关联吗? rpath 设置是否正确?我假设您正在构建程序可执行文件而不是共享库,对吗?你试过吗LD_PRELOAD=/path/to/sfml-graphics/lib.so /path/to/program

【讨论】:

  • 如果我按照你的最后一步,我得到以下信息:eXistys@linux-djdf:~> LD_PRELOAD=/home/eXistys/SFML/sfml2-build/lib/libsfml-graphics.so /home /eXistys/workspace/SFML/Debug/SFML /home/eXistys/workspace/SFML/Debug/SFML:符号查找错误:/home/eXistys/SFML/sfml2-build/lib/libsfml-graphics.so:未定义符号:_ZN2sf6Window6createENS_9VideoModeERKSsjRKNS_15ContextSettingsE
  • 另外,我确定我正确链接了 sfml-graphics。不过,我不知道你所说的 rpath 是什么意思。
  • 显然您没有正确链接 sfml 库。现在您缺少 sfml-window。请发布ldd /path/to/program 的结果和来自 Eclipse 的链接命令(如果可用)。
  • 您已链接到位于 /usr/lib64/ 中的 SFML 库,而您希望从 /home/eXistys/SFML/ 中获得一个。这两者的版本是否匹配?
  • eclipse中应该有C-Build视图和原始编译器输出,你能发布内容吗?
猜你喜欢
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-02
  • 2017-05-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多