I am trying to use a widget library called GLV for an application I am developing. I am running Linux Mint 17. I installed all the libraries and I have succeeded in building the GLV library, but when I try to running one of samples that was built I get this shared library error.
我正在尝试使用一个名为GLV的小部件库来开发我正在开发的应用程序。我正在运行Linux Mint 17。我安装了所有的库,并且成功地构建了GLV库,但是当我试图运行所构建的一个示例时,我得到了这个共享库错误。
Inconsistency detected by ld.so: dl-version.c: 224: _dl_check_map_versions:
Assertion `needed != ((void *)0)' failed!
Can anyone help me find out where the inconsistency in the shared library is coming from?
谁能帮我找出共享库中不一致的地方是从哪里来的?
More information
In the README file it says
在自述文件中它说
GLV requires only OpenGL, GLU, and GLEW (Linux only). There are
no other dependencies, unless a window binding is used, such as GLUT."
When I installed GLEW from source it printed a list of files that were installed.
当我从源代码安装GLEW时,它打印了安装的文件列表。
$ sudo make install
install -d -m 0755 /usr/include/GL
install -m 0644 include/GL/wglew.h /usr/include/GL/
install -m 0644 include/GL/glew.h /usr/include/GL/
install -m 0644 include/GL/glxew.h /usr/include/GL/
install -d -m 0755 /usr/lib64
install -m 0644 lib/libGLEW.so.1.8.0 /usr/lib64/
ln -sf libGLEW.so.1.8.0 /usr/lib64/libGLEW.so.1.8
ln -sf libGLEW.so.1.8.0 /usr/lib64/libGLEW.so
install -m 0644 lib/libGLEW.a /usr/lib64/
install -d -m 0755 /usr/lib64
install -d -m 0755 /usr/lib64/pkgconfig
install -m 0644 glew.pc /usr/lib64/pkgconfig/
I checked to see if there might be a glew package installed, but it looks like there is none.
我检查了一下是否安装了一个glew包,但是看起来没有。
$ aptitude search glew
p glew-utils - OpenGL Extension Wrangler - utilities
p glew-utils:i386 - OpenGL Extension Wrangler - utilities
p libglew-dev - OpenGL Extension Wrangler - development environment
p libglew-dev:i386 - OpenGL Extension Wrangler - development environment
v libglew1.5-dev -
v libglew1.5-dev:i386 -
v libglew1.6-dev -
v libglew1.6-dev:i386 -
pi libglew1.8 - OpenGL Extension Wrangler - runtime environment
p libglew1.8:i386 - OpenGL Extension Wrangler - runtime environment
p libglewmx-dev - OpenGL Extension Wrangler MX - development environment
p libglewmx-dev:i386 - OpenGL Extension Wrangler MX - development environment
v libglewmx1.5-dev -
v libglewmx1.5-dev:i386 -
v libglewmx1.6-dev -
v libglewmx1.6-dev:i386 -
p libglewmx1.8 - OpenGL Extension Wrangler (Multiple Rendering Contexts)
p libglewmx1.8:i386 - OpenGL Extension Wrangler (Multiple Rendering Contexts)
I checked what GLU packages were installed but everything looks ok here too.
我检查了安装了哪些GLU包,但是这里的一切看起来都还不错。
$ aptitude search glu
p celestia-glut - real-time visual space simulation (GLUT frontend)
p celestia-glut:i386 - real-time visual space simulation (GLUT frontend)
p cluster-glue - Reusable cluster components for Linux HA
p cluster-glue:i386 - Reusable cluster components for Linux HA
p cluster-glue-dev - Development files for the cluster glue components
p cluster-glue-dev:i386 - Development files for the cluster glue components
p freebsd-glue - Emulate a FreeBSD build environment
i freeglut3 - OpenGL Utility Toolkit
p freeglut3:i386 - OpenGL Utility Toolkit
p freeglut3-dbg - OpenGL Utility Toolkit debugging information
p freeglut3-dbg:i386 - OpenGL Utility Toolkit debugging information
i freeglut3-dev - OpenGL Utility Toolkit development files
p freeglut3-dev:i386 - OpenGL Utility Toolkit development files
p gambas3-gb-opengl-glu - Gambas opengl-glu component
p gambas3-gb-opengl-glu:i386 - Gambas opengl-glu component
p gimp-gluas - Lua environment plug-in for GIMP
p gimp-gluas:i386 - Lua environment plug-in for GIMP
p glue-schema - LDAP schema files for the GLUE 1.3 and GLUE 2.0 Schema
p glue-sprite - Simple command line tool to generate CSS sprites
p glurp - GTK+ frontend to the Music Player Daemon (MPD)
p glurp:i386 - GTK+ frontend to the Music Player Daemon (MPD)
p glusterfs-client - clustered file-system (client package)
p glusterfs-client:i386 - clustered file-system (client package)
p glusterfs-common - GlusterFS common libraries and translator modules
p glusterfs-common:i386 - GlusterFS common libraries and translator modules
p glusterfs-dbg - GlusterFS debugging symbols
p glusterfs-dbg:i386 - GlusterFS debugging symbols
p glusterfs-examples - example files for the glusterfs server and client
p glusterfs-server - clustered file-system (server package)
p glusterfs-server:i386 - clustered file-system (server package)
p libcluster-glue - Reusable cluster libraries (transitional package)
p libcluster-glue-dev - Reusable cluster components for Linux HA (transitional package)
p libghc-gluraw-dev - Raw binding for the OpenGL graphics system
p libghc-gluraw-dev:i386 - Raw binding for the OpenGL graphics system
v libghc-gluraw-dev-1.3.0.0-200bb:i386 -
v libghc-gluraw-dev-1.3.0.0-9f9cf -
p libghc-gluraw-doc - Raw binding for the OpenGL graphics system; documentation
p libghc-gluraw-prof - Raw binding for the OpenGL graphics system; profiling libraries
p libghc-gluraw-prof:i386 - Raw binding for the OpenGL graphics system; profiling libraries
v libghc-gluraw-prof-1.3.0.0-200bb:i386 -
v libghc-gluraw-prof-1.3.0.0-9f9cf -
p libghc-glut-dev - Haskell GLUT binding for GHC
p libghc-glut-dev:i386 - Haskell GLUT binding for GHC
v libghc-glut-dev-2.4.0.0-233c0:i386 -
v libghc-glut-dev-2.4.0.0-31a91 -
p libghc-glut-doc - Haskell GLUT binding for GHC; documentation
p libghc-glut-prof - Haskell GLUT binding for GHC; profiling libraries
p libghc-glut-prof:i386 - Haskell GLUT binding for GHC; profiling libraries
v libghc-glut-prof-2.4.0.0-233c0:i386 -
v libghc-glut-prof-2.4.0.0-31a91 -
v libglu-dev -
v libglu-dev:i386 -
v libglu1 -
v libglu1:i386 -
i libglu1-mesa - Mesa OpenGL utility library (GLU)
i A libglu1-mesa:i386 - Mesa OpenGL utility library (GLU)
i A libglu1-mesa-dev - Mesa OpenGL utility library -- development files
p libglu1-mesa-dev:i386 - Mesa OpenGL utility library -- development files
p libgluegen2-build-java - Tool to automatically generate the Java and JNI code.
p libgluegen2-doc - Tool to automatically generate the Java and JNI code.
p libgluegen2-jni - Tool to automatically generate the Java and JNI code.
p libgluegen2-jni:i386 - Tool to automatically generate the Java and JNI code.
p libgluegen2-rt-java - Tool to automatically generate the Java and JNI code.
p libgssglue-dev - header files and docs for libgssglue
p libgssglue-dev:i386 - header files and docs for libgssglue
p libgssglue1 - mechanism-switch gssapi library
p libgssglue1:i386 - mechanism-switch gssapi library
v libhugs-glut -
v libhugs-glut:i386 -
p libhugs-glut-bundled - A binding for the OpenGL Utility Toolkit
p libhugs-glut-bundled:i386 - A binding for the OpenGL Utility Toolkit
p libkwinactiveglutils1abi3 - library used by accellaration for the KDE window manager Active
p libkwinactiveglutils1abi3:i386 - library used by accellaration for the KDE window manager Active
p libkwinglutils1abi3 - library with OpenGL utilities for the KDE window manager
p libkwinglutils1abi3:i386 - library with OpenGL utilities for the KDE window manager
p libmgl-glut5 - library for scientific graphs. (GLUT runtime library)
p libmgl-glut5:i386 - library for scientific graphs. (GLUT runtime library)
p libmodglue1 - C++ library for handling of multiple co-processes
p libmodglue1:i386 - C++ library for handling of multiple co-processes
p libmodglue1-dev - development files for a C++ library for handling of multiple co-processes
p libnet-inet6glue-perl - glue module to make perl modules IPv6 ready
p libnet-sslglue-perl - add/extend SSL support for common perl modules
p libtaoframework-freeglut-cil-dev - Tao CLI binding for freeglut - development files
p libtaoframework-freeglut2.4-cil - Tao CLI binding for freeglut
p mgltools-mglutil - Molecular Graphics Laboratory utility collection
i python-configglue - Glues together optparse.OptionParser and ConfigParser.ConfigParser
p python-django-configglue - Django commands for working with configglue generated settings
p python-gluon - High-level Python web development framework
p python3-configglue - Glues together optparse.OptionParser and ConfigParser.ConfigParser
v xlibmesa-glu-dev -
v xlibmesa-glu-dev:i386 -
2 个解决方案
#1
6
Inconsistency detected by ld.so: dl-version.c: 224: _dl_check_map_versions: Assertion 'needed != ((void *)0)' failed!
so检测不一致:dl-version。c: 224: _dl_check_map_versions:断言“需要!= (void *)0”失败!
This is a bug in glibc, or a corruption in one of your shared libraries. The glibc code reads:
这是glibc中的一个错误,或者是共享库中的一个损坏。glibc代码写着:
while (1)
{
ElfW(Vernaux) *aux;
struct link_map *needed = find_needed (strtab + ent->vn_file, map);
/* If NEEDED is NULL this means a dependency was not found
and no stub entry was created. This should never happen. */
assert (needed != NULL);
...
Your options at this point are:
你目前的选择是:
- reinstall and verify md5sums for all libraries involved to rule out on-disk corruption, and
- 重新安装并验证涉及到的所有库的md5sum,以排除磁盘上的损坏
- install debuginfo package for glibc, and try to understand which library and which symbol version is triggering the assertion, or
- 为glibc安装debuginfo包,并尝试理解哪个库和哪个符号版本触发断言,或者
- report this in appropriate bug tracker for your Linux distro.
- 在适当的Linux发行版bug跟踪器中报告这一点。
Setting LD_DEBUG=symbols,bindings
or even LD_DEBUG=all
may also provide some clues on exactly which symbols are being looked up.
设置LD_DEBUG=符号,绑定,甚至LD_DEBUG=all也可以提供一些线索,以确定哪些符号正在被查询。
#2
0
I got kind of a similar error. All I did was to open a new terminal and run the python code again.
我也有类似的错误。我所做的就是打开一个新的终端,再次运行python代码。
That worked for me.
为我工作。
#1
6
Inconsistency detected by ld.so: dl-version.c: 224: _dl_check_map_versions: Assertion 'needed != ((void *)0)' failed!
so检测不一致:dl-version。c: 224: _dl_check_map_versions:断言“需要!= (void *)0”失败!
This is a bug in glibc, or a corruption in one of your shared libraries. The glibc code reads:
这是glibc中的一个错误,或者是共享库中的一个损坏。glibc代码写着:
while (1)
{
ElfW(Vernaux) *aux;
struct link_map *needed = find_needed (strtab + ent->vn_file, map);
/* If NEEDED is NULL this means a dependency was not found
and no stub entry was created. This should never happen. */
assert (needed != NULL);
...
Your options at this point are:
你目前的选择是:
- reinstall and verify md5sums for all libraries involved to rule out on-disk corruption, and
- 重新安装并验证涉及到的所有库的md5sum,以排除磁盘上的损坏
- install debuginfo package for glibc, and try to understand which library and which symbol version is triggering the assertion, or
- 为glibc安装debuginfo包,并尝试理解哪个库和哪个符号版本触发断言,或者
- report this in appropriate bug tracker for your Linux distro.
- 在适当的Linux发行版bug跟踪器中报告这一点。
Setting LD_DEBUG=symbols,bindings
or even LD_DEBUG=all
may also provide some clues on exactly which symbols are being looked up.
设置LD_DEBUG=符号,绑定,甚至LD_DEBUG=all也可以提供一些线索,以确定哪些符号正在被查询。
#2
0
I got kind of a similar error. All I did was to open a new terminal and run the python code again.
我也有类似的错误。我所做的就是打开一个新的终端,再次运行python代码。
That worked for me.
为我工作。