【问题标题】:Error while loading libraries加载库时出错
【发布时间】:2017-07-12 22:52:15
【问题描述】:

我的 makefile 内容:

all: compile launch

compile:
    g++ main.cpp -c -I/media/eidan/soft/c++/Libraries/SFML-2.4.2/include 

launch:
    g++ main.o -o result -L/media/eidan/soft/c++/Libraries/SFML-2.4.2/lib -lsfml-window -lsfml-system -lsfml-graphics

当我尝试启动程序时,我得到了这个:

./result: error while loading shared libraries: libsfml-window.so.2.4: cannot open shared object file: No such file or directory

虽然我的 SFML 路径是正确的并且文件 libsfml-window.so.2.4 存在

我必须在 Makefile 中进行哪些更改才能使其正常工作?

PS:Ubuntu 16.04

【问题讨论】:

  • 仔细检查您的路径,问题似乎与您的 SFML 文件路径有关
  • 请显示ls -l /media/eidan/soft/c++/Libraries/SFML-2.4.2/lib/libsfml-window*除此之外,据我了解,您不是从Makefile启动程序,而是从您手动提供的命令行启动程序,对吗?然后我假设 Makefile 与错误消息无关。
  • @dmi !valid XHTML.
  • !valid XHTMLфев 是 2 月在俄罗斯
  • @Eidan,抱歉,我无法理解您的评论。你到底是什么意思?

标签: c++ linux sfml


【解决方案1】:

这可以通过以下方法之一解决:
1. 创建 /etc/ld.so.conf.d/some.conf 文件并在其中添加 /media/eidan/soft/c++/Libraries/SFML-2.4.2/lib 路径
2. 创建一个启动脚本,在启动时导出链接共享库目录的 LD_LIBRARY_PATH。可以手动为任何启动的 bash 会话导出此库路径。
-L CFLAG 仅由编译器使用。库路径未包含在最终的二进制文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    相关资源
    最近更新 更多