赞
踩
1.检查 lib/x86_64-linux-gnu/libOpenGL.so
nm -D /lib/x86_64-linux-gnu/libOpenGL.so.0.0.0 | grep tls
输出为
U _glapi_tls_Current
U代表undefined,则一定在其链接的动态库中有定义
ldd /usr/lib/x86_64-linux-gnu/libOpenGL.so.0.0.0
输出为
- linux-vdso.so.1 (0x00007ffd81bb9000)
- libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f5f9cecf000)
- libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5f9ccdd000)
- libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5f9ccd7000)
- /lib64/ld-linux-x86-64.so.2 (0x00007f5f9d207000)
按照google搜索的答案,定义在 libGLdispatch.so 中
nm -D /lib/x86_64-linux-gnu/libGLdispatch.so.0 | grep tls
无输出,再查看
nm -D /lib/x86_64-linux-gnu/libGLdispatch.so.0 | grep glapi
- 00000000002e6be8 D _glapi_Current
- 0000000000042740 T _glapi_get_current
可能是libglvnd版本问题,但是这是apt-get安装的最新版本,因此转而考虑从github源码编译 https://github.com/NVIDIA/libglvnd.git
按照步骤安装后,成功编译
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。