我从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(如果那是相关的)
答案 0 :(得分:2)
/usr/local/lib
。将其添加到LD_LIBRARY_PATH
。
或者,将动态链接器配置为始终搜索/usr/local/lib
和/usr/local/lib64
。这通常是通过添加/etc/ld.so.conf
文件的路径并运行ldconfig
。
有时也会出现32/64位问题,即一个尝试运行32位可执行文件,只存在64位库,反之亦然。运行file <somtething>.so
和file <your-executable>
以确定其架构。一般情况下,32位库转到<whatever>/lib
,64位转到<whatever>/lib64
,但有时它们最终会出错。