Bash libGLEW.so.1.9:无法打开共享对象文件。没有这样的文件或目录

Bash libGLEW.so.1.9:无法打开共享对象文件。没有这样的文件或目录,bash,glew,Bash,Glew,我正在尝试运行我制作的一个应用程序,它使用glew。 它可以很好地编译,但当我尝试运行它时,会出现错误:libGLEW.so.1.9:无法打开共享对象文件。没有这样的文件或目录。我已经检查过了,看看是否有,它在usr/lib64中。 我在internet上尝试了其他修复,并将/etc/ld.so.conf编辑为: include /etc/ld.so.conf.d/*.conf /usr/lib64/libGLEW.so.1.9(adding this second path) 然后运行了ld

我正在尝试运行我制作的一个应用程序,它使用glew。 它可以很好地编译,但当我尝试运行它时,会出现错误:libGLEW.so.1.9:无法打开共享对象文件。没有这样的文件或目录。我已经检查过了,看看是否有,它在usr/lib64中。 我在internet上尝试了其他修复,并将/etc/ld.so.conf编辑为:

include /etc/ld.so.conf.d/*.conf /usr/lib64/libGLEW.so.1.9(adding this second path)
然后运行了ldconfig,但终端发出了一大堆胡言乱语

有人能帮忙吗? 顺便说一句,很抱歉没有提供信息的标题。

您应该阅读man ldconfig:

描述

该文件应自动生成。在Gentoo上,它只包含目录

$ cat /etc/ld.so.conf
# ld.so.conf autogenerated by env-update; make all changes to
# contents of /etc/env.d directory
/lib64
/usr/lib64
/usr/local/lib64
/lib32
/usr/lib32
/usr/local/lib32
/lib
/usr/lib
/usr/local/lib
include ld.so.conf.d/*.conf
/usr/lib32/OpenCL/vendors/nvidia
/usr/lib64/OpenCL/vendors/nvidia
/usr/lib32/opengl/nvidia/lib
/usr/lib64/opengl/nvidia/lib
/usr/lib64/qca2
/usr/lib64/qt4
/usr/lib32/qt4
/usr/lib/qt4
/usr/lib/postgresql
/usr/lib64/postgresql
/usr/lib64/postgresql-9.3/lib64/
/usr/games/lib64
/usr/games/lib32
/usr/games/lib
查看/etc/env.d

$ grep LD /etc/env.d/*
/etc/env.d/00basic:LDPATH='/lib64:/usr/lib64:/usr/local/lib64:/lib32:/usr/lib32:/usr/local/lib32:/lib:/usr/lib:/usr/local/lib'
/etc/env.d/00glibc:LDPATH="include ld.so.conf.d/*.conf"
/etc/env.d/03opencl:LDPATH="/usr/lib32/OpenCL/vendors/nvidia:/usr/lib64/OpenCL/vendors/nvidia"
/etc/env.d/03opengl:LDPATH="/usr/lib32/opengl/nvidia/lib:/usr/lib64/opengl/nvidia/lib"
/etc/env.d/44qca2:LDPATH="/usr/lib64/qca2"
/etc/env.d/44qt4:LDPATH="/usr/lib64/qt4:/usr/lib32/qt4:/usr/lib/qt4"
/etc/env.d/44qt4-emul:LDPATH=/usr/lib32/qt4
/etc/env.d/50postgresql:LDPATH="/usr/lib/postgresql:/usr/lib64/postgresql:/usr/lib64/postgresql-9.3/lib64/"
/etc/env.d/90games:LDPATH="/usr/games/lib64:/usr/games/lib32:/usr/games/lib"
根据我看到的情况判断,您应该检查/etc/ld.so.conf.d/中的文件,将其中一个文件复制到一个新文件(如glew.conf)中,并修改新文件中的路径以指向lib文件所在的文件夹

您应该阅读man ldconfig:

描述

该文件应自动生成。在Gentoo上,它只包含目录

$ cat /etc/ld.so.conf
# ld.so.conf autogenerated by env-update; make all changes to
# contents of /etc/env.d directory
/lib64
/usr/lib64
/usr/local/lib64
/lib32
/usr/lib32
/usr/local/lib32
/lib
/usr/lib
/usr/local/lib
include ld.so.conf.d/*.conf
/usr/lib32/OpenCL/vendors/nvidia
/usr/lib64/OpenCL/vendors/nvidia
/usr/lib32/opengl/nvidia/lib
/usr/lib64/opengl/nvidia/lib
/usr/lib64/qca2
/usr/lib64/qt4
/usr/lib32/qt4
/usr/lib/qt4
/usr/lib/postgresql
/usr/lib64/postgresql
/usr/lib64/postgresql-9.3/lib64/
/usr/games/lib64
/usr/games/lib32
/usr/games/lib
查看/etc/env.d

$ grep LD /etc/env.d/*
/etc/env.d/00basic:LDPATH='/lib64:/usr/lib64:/usr/local/lib64:/lib32:/usr/lib32:/usr/local/lib32:/lib:/usr/lib:/usr/local/lib'
/etc/env.d/00glibc:LDPATH="include ld.so.conf.d/*.conf"
/etc/env.d/03opencl:LDPATH="/usr/lib32/OpenCL/vendors/nvidia:/usr/lib64/OpenCL/vendors/nvidia"
/etc/env.d/03opengl:LDPATH="/usr/lib32/opengl/nvidia/lib:/usr/lib64/opengl/nvidia/lib"
/etc/env.d/44qca2:LDPATH="/usr/lib64/qca2"
/etc/env.d/44qt4:LDPATH="/usr/lib64/qt4:/usr/lib32/qt4:/usr/lib/qt4"
/etc/env.d/44qt4-emul:LDPATH=/usr/lib32/qt4
/etc/env.d/50postgresql:LDPATH="/usr/lib/postgresql:/usr/lib64/postgresql:/usr/lib64/postgresql-9.3/lib64/"
/etc/env.d/90games:LDPATH="/usr/games/lib64:/usr/games/lib32:/usr/games/lib"

根据我看到的情况判断,您应该检查/etc/ld.so.conf.d/中的文件,将其中一个文件复制到一个新文件(如glew.conf)中,并修改新文件中的路径以指向lib文件所在的文件夹

结果表明这是一个简单的错误

而不是将路径添加到特定的include

/usr/lib64/libGLEW.so.1.9
在ld.so.config文件中,我尝试只包含路径

/usr/lib64/

结果证明这是一个简单的错误

而不是将路径添加到特定的include

/usr/lib64/libGLEW.so.1.9
在ld.so.config文件中,我尝试只包含路径

/usr/lib64/

一般来说,如果您在所有安装中都使用其软件包管理器,那么您的操作系统发行版应该注意这一点。尽管存在Internet上的随机页面,但如果您需要手动更改动态链接器的配置或更新其缓存,但您没有手动安装某些内容,则说明某些内容已损坏。此外,这实际上是一个系统管理问题,而不是编程问题[因此,超级用户可能比堆栈溢出更好],特别是不是bash问题ld。所以附带glibc,而不是bash。我必须手动安装glew,因为apt存储库最多只有glew1.6。我需要1.9…希望你不只是安装其他人的二进制文件,而是根据你的本地系统编译它们?不,我只是按照glew下载页面告诉我的做了hahaIn general,如果你在所有安装中都使用它的软件包管理器,这是你的OS发行版应该为你做的事情。尽管存在Internet上的随机页面,但如果您需要手动更改动态链接器的配置或更新其缓存,但您没有手动安装某些内容,则说明某些内容已损坏。此外,这实际上是一个系统管理问题,而不是编程问题[因此,超级用户可能比堆栈溢出更好],特别是不是bash问题ld。所以附带glibc,而不是bash。我必须手动安装glew,因为apt存储库最多只有glew1.6。我需要1.9…希望你不只是安装别人的二进制文件,而是根据你的本地系统编译它们?不,我只是按照glew下载页面告诉我的做了hahaYou不是要包括最后三点,是吗?你不是要包括最后三点,是吗?