【问题标题】:Error while loading shared libraries: libsfml-graphics.so.2.2.0加载共享库时出错:libsfml-graphics.so.2.2.0
【发布时间】:2015-08-18 01:45:12
【问题描述】:

完全错误: error while loading shared libraries: libsfml-graphics.so.2.2.0: cannot open shared object file: No such file or directory

这可能是我第 5 次遇到 SFML 错误。奇怪的是,此错误仅在运行可执行文件时发生,而不是在编译期间发生。我不知道是什么导致了错误(除了程序找不到文件),因为在我重新安装 Ubuntu 之前它就像一个魅力。我试过sudo ldconfig,也用过sudo apt-get install libsfml-dev,但我没有使用它链接SFML,而是从提取的档案中链接。

【问题讨论】:

  • 如果您是从源代码构建,请确保在可执行文件的目录中包含 .so
  • @OMGtechy 你是什么意思'在可执行文件的目录中包含.so'?就像把它放在链接器设置中(我使用 Code::Blocks btw)
  • 错误是什么?尝试使用-z defs 编译你的exe,你得到任何错误吗?
  • 错误是cannot open shared object file: No such file or directory,但我的文件夹中有所有必要的文件
  • @bboy3577 如果您自己构建它,您需要包含在与可执行文件相同的目录中构建的.so 文件。这是因为它需要在运行时加载它。如果您不自己建造,那是无关紧要的:)

标签: c++ linux shared-libraries sfml


【解决方案1】:

此答案依赖于您的系统上安装的libsfml-dev。修复它的方法是从搜索目录>链接器中删除所有 SFML 选项,然后确保链接器设置如下所示:

这意味着 CodeBlocks 将链接到默认位置。然后重新编译代码(编辑代码,以便 CodeBlocks 实际编译它)。我正在运行 g++ 4.9.2,但我不确定默认的 4.8.2 是否有效,或者它是否有任何不同。

【讨论】:

    猜你喜欢
    • 2016-12-29
    • 2011-05-29
    • 2017-11-05
    • 2014-12-09
    • 2022-01-04
    相关资源
    最近更新 更多