gpt4 book ai didi

c++ - Linux SFML - 无法打开共享对象文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:42 24 4
gpt4 key购买 nike

使用 Linux Mint 18 Cinnamon 64 位

我在尝试让 SFML 工作时遇到问题。我正在尝试使用 g++ 从命令行进行编译。

我的文件是/home/joe/Desktop/SFML/test/main.cpp

我的 SFML 文件夹位于 /usr/lib/SFML-2.4.1

如果我运行 g++ -c main.cpp -I/usr/lib/SFML-2.4.1/include 它编译正常。然后我运行 g++ main.o -o sfml-app -L/usr/lib/SFML-2.4.1/lib -lsfml-graphics -lsfml-system -lsfml-window -lsfml-audio之前有问题,但在使用 -L 命令后,现在可以正常工作了。

当我运行 ./sfml-app 时出现错误 ./sfml-app: error while loading shared libraries: libsfml-graphics.so.2.4: cannot open shared object文件:没有那个文件或目录

现在在 /usr/lib/SFML-2.4.1/lib 目录中 libsfml-graphics.so.2.4 是一个带有以下链的符号链接(symbolic link)(此目录中的所有文件。

libsfml-graphics.so -> libsfml-graphics.so.2.4 -> libsfml-graphics.so.2.4.1

所以谁能给我解释一下为什么找不到目标文件?谢谢

最佳答案

您遇到的问题是您告诉链接器在哪里可以找到库文件/信息,但是在运行程序时您的系统不知道在哪里可以找到属于 SFML 的共享库。

最快的解决方法是创建一个小的 shell 脚本来运行设置环境变量 LD_LIBRARY_PATH 的程序。

像这样的东西应该可以工作(未经测试):

#!/usr/bin/bash
LD_LIBRARY_PATH=/usr/lib/SFML-2.4.1/bin ./sfml-app

作为替代方案,我建议您 compile and install SFML from sources .没那么复杂。最难的部分是确定所有依赖项并首先安装它们(最好使用您的包管理器)。

也可以使用 apt-get 安装 SFML,但我不能 100% 确定他们的版本是最新的:sudo apt-get install libsfml-dev

关于c++ - Linux SFML - 无法打开共享对象文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41516065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com