0

我从 git 下载并编译了 SFML2(调试、发布、静态和动态),并使用以下方法成功编译了他们教程中的一些示例代码:

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

当我尝试运行二进制文件时出现问题,它找不到任何共享对象(libsfml-graphics.so.2、libsfml-window.so.2 等)

我检查了一下,它们存在于 /usr/local/lib 中。

我错过了什么吗?

如果相关,使用 Fedora 17 x64 和 g++ 4.7.2

4

1 回答 1

2

/usr/local/lib动态链接器通常不搜索。将其添加到LD_LIBRARY_PATH.

或者,将动态链接器配置为始终搜索/usr/local/lib,也许 /usr/local/lib64. 这通常是通过添加/etc/ld.so.conf文件的路径并运行ldconfig.

有时也存在 32/64 位问题,即尝试运行 32 位可执行文件但仅存在 64 位库,反之亦然。运行file <somtething>.sofile <your-executable>确定它们的架构。一般来说,32 位库<whatever>/lib和 64 位库到 . <whatever>/lib64,但有时它们最终会出现在错误的位置。

于 2012-11-22T20:09:34.610 回答