我正在 Ubuntu 14.04 32 位上为 squeak 构建虚拟机。它无法调用库的入口点,无论这些库是静态链接的还是加载的。我一直在研究其他问题,发现了 4 个相关问题,但导出 LD_LIBRARY_PATH 和运行“sudo ldconfig”都无济于事:
- Ubuntu 在哪里寻找共享库?
- 为什么我的程序找不到“/usr/local/lib”中的库?
- OpenGL GLX 上下文未使用直接渲染,这可能会导致性能问题。(steam)AMD 驱动程序
- Ubuntu 14.04“无法找到所需的 OpenGL 入口点‘glGetError’!”
我注意到这个调用动态链接库 squeak 也会构建,然后它无法找到 wwe 也会构建的显示驱动程序。(更多信息请访问 squeakvm.org)。
$ squeak Mushroom.1.image &
[2] 3107
$ squeak: could not find any display driver
[2]+ Aborted (core dumped) squeak Mushroom.1.image
我还在内部构建了几个插件,但这些插件在运行时也调用失败。执行 nm -a squeak 会给出许多符号,但会出现来自各种静态链接库的部分(不是全部)符号。
符号绑定问题是否会同时影响静态和动态情况?是否有其他有关库运行时问题的报告和其他建议?
更新:
以下是我新安装的 15.10 32 位系统中加载的库。
安装构建库
======================================================
sudo apt-get 安装 cmake zip bash-completion git
sudo apt-get 安装 libc6-dev:i386 libasound2:i386 libasound2-dev:i386 libasound2-plugins:i386
sudo apt-get 安装 libssl-dev:i386 libssl0.9.8:i386 libfreetype6-dev:i386
sudo apt-get 安装 libx11-dev:i386 libsm-dev:i386 libice-dev:i386
sudo apt-get 安装 build-essential gcc-multilib g++
sudo apt-get 安装 libgl1-mesa-dev libgl1-mesa-glx:i386
sudo apt-get 安装 binutils:i386 g++-4.6:i386 gcc-4.6:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so /usr/lib/i386-linux-gnu/libGL.so
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/mesa/libGL.so
sudo apt-get 安装 uuid-dev:i386
sudo apt-get 安装 subversion
运行 sudo ldconfig -v 后,squeak 无法找到显示驱动程序。我认为其中有些东西出了问题。我将再进行一次安装,不运行任何这些程序,然后慢慢地一点一点地启动。
问候,罗伯特