Freeglut程序编译但运行时显示错误:libglut.so.3:无法打开共享对象文件

时间:2011-05-28 12:57:56

标签: opengl shared-libraries freeglut

这是我的计划:

#include </usr/local/include/GL/glut.h>

int main(int argc, char **argv) 
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowPosition(100,100);
    glutInitWindowSize(320,320);
    glutCreateWindow("Lighthouse3D- GLUT Tutorial");
}

编译:

  

g ++ -lglut -L / usr / local / lib / -o start   start.cpp; ./启动

显示错误:

  

./ start:加载共享时出错   库:libglut.so.3:无法打开   共享对象文件:没有这样的文件或   目录

该文件存在。

  

bashprompt&GT;找到libglut.so.3
  /usr/local/lib/libglut.so.3
  /usr/local/lib/libglut.so.3.9.0

还试过:

  

LD_RUN_PATH = “/ USR /本地/ LIB /”
  g ++ -lglut -LLIBDIR -o start start.cpp; ./ start   没有运气。

这些是安装时显示的消息(如果这有帮助):

  

根@导航:/home/Nav/freeglut-2.6.0#   make install在src中安装   make [1]:输入目录   /home/Nav/freeglut-2.6.0/src'
make[2]: Entering directory
/ home / Nav / freeglut-2.6.0 / src'测试   -z“/ usr / local / lib”|| / bin / mkdir -p“/ usr / local / lib”/ bin / sh ../libtool   --mode = install / usr / bin / install -c'libglut.la'   '/usr/local/lib/libglut.la'
  / usr / bin / install -c   的.libs / libglut.so.3.9.0   /usr/local/lib/libglut.so.3.9.0(cd   / usr / local / lib&amp;&amp; {ln -s -f   libglut.so.3.9.0 libglut.so.3 || { R M   -f libglut.so.3&amp;&amp; ln -s libglut.so.3.9.0 libglut.so.3; }; })
  (cd / usr / local / lib&amp;&amp; {ln -s -f   libglut.so.3.9.0 libglut.so || {rm -f   libglut.so&amp;&amp; ln -s libglut.so.3.9.0   libglut.so; }; } / usr / bin / install   -c .libs / libglut.lai /usr/local/lib/libglut.la
  / usr / bin / install -c .libs / libglut.a   /usr/local/lib/libglut.a chmod 644   /usr/local/lib/libglut.a ranlib   /usr/local/lib/libglut.a
  PATH =“$ PATH:/ sbin”ldconfig -n   在/ usr / local / lib目录
  -------------------------------------------------- --------------------图书馆已经安装在:
  / usr / local / lib如果你曾经发生过   想要链接安装   给定目录中的库,   LIBDIR,你必须使用libtool,   并指定的完整路径名   库,或使用-LLIBDIR' flag during linking and do at least one of the following:
- add LIBDIR to the
LD_LIBRARY_PATH'环境变量        执行期间       - 将LIBDIR添加到LD_RUN_PATH' environment variable during linking
- use the
- Wl, - rpath -Wl,LIBDIR'链接器标志
      - 让系统管理员将LIBDIR添加到`/etc/ld.so.conf'   请参阅任何操作系统文档   关于共享库的更多信息   信息,如ld(1)和   ld.so(8)手册页。

1 个答案:

答案 0 :(得分:3)

您的LD_RUN_PATH尝试非常接近,但应该是LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/usr/local/lib
./start

安装程序的这个提示也很方便:

  

请系统管理员将LIBDIR添加到`/etc/ld.so.conf'

如果你这样做,你就不需要做LD_LIBRARY_PATH事。