1 问题
我正在尝试在一台运行 Arch Linux 的电脑上从头开始构建开源的 motorcar 项目。Motorcar 是一个 Linux VR 窗口管理器,可与 Oculus Rift D2K 头戴式耳机和 Razer Hydra 控制器配合使用,但实际编译此项目时不需要这些物品。
问题:我无法在我的机器上(Arch Linux)编译 motorcar。我遇到了 Qt5 链接错误(如下所述)。
2 Motorcar 先决条件和构建目标
根据 README,构建 motorcar 需要以下先决条件:
- 已编译支持 EGL 和桌面 OpenGL 的 Mesa。
- 已编译支持 EGL 和桌面 OpenGL 的 Cairo。
- QtWayland 5.5(需要 Qt5.5)。
- Wayland(Linux 窗口管理器协议)。
此外,motorcar 项目被分成以下实际构建目标:
libmotorcar-compositor
:这是实际的 motorcar 库,用于支持此后的构建目标。simple-compositor
:这是一个简单的 Wayland 组合器,可以从控制台启动。启动后(在您的屏幕上,而不是 VR 头戴式耳机中),您可以在其中启动 3D 窗口程序。rift-hydra-compositor
:与simple-compositor
相同,只是它具有支持 Oculus Rift D2K 头戴式耳机和 Razer Hydra 控制器的功能。motorcar-client-demo
:这是运行在simple-compositor
或rift-hydra-compositor
中的客户端“窗口”。它仅仅是一个旋转的立方体。启动simple-compositor
后,您应该能够 alt-tab 切换到控制台并运行motorcar-client-demo
,从而在运行的simple-compositor
中启动 3D 立方体。
3 我如何尝试构建 Motorcar 构建目标(以及我遇到的错误)
我的系统:运行 nvidia 驱动程序的 Arch Linux。
请注意,motorcar 项目提供了一个 build.sh
脚本。我尝试使用它,但它在我的系统上无法工作。因此,我从源代码编译了所有内容。以下是我如何做的(导致最终错误)。
3.1 我如何构建 Mesa
首先,我从mesa下载了mesa-13.0.2.tar.gz
。解压缩后,我运行了以下命令:
$ ./configure --prefix=$WLD --enable-gles2 --disable-gallium-egl --with-egl-platforms=x11,wayland,drm --enable-gbm --enable-shared-glapi --with-gallium-drivers=r300,r600,swrast,nouveau --enable-glx-tls # what should $WLD be here? It might have been left blank.
$ make
$ sudo make install
3.2 我是如何构建Cairo的
首先,我从cairo官网下载了LATEST-cairo-1.14.6
。解压后,我运行了以下命令:
$ ./configure --prefix=$WLD --enable-xcb=yes --enable-gl=yes -enable-egl=yes # what should $WLD be here? It might have been left blank.
$ make
$ sudo make install
3.3 我如何构建Wayland
我只是使用了我的软件包管理器进行此操作。
$ sudo pacman -S wayland
$ sudo pacman -S weston # in case this is relevant
3.4 我如何构建qtwayland和qt5.5
在这里,我遵循了motorcar的README文档中的指示:
$ cd ~
$ git clone git://code.qt.io/qt/qt5.git qt5
$ cd qt5
$ git checkout 1497a398e34e18abb18f705b2294464840629ca1 # the Qt5 commit hash confirmed to work from the README
$ ./init-repository --no-webkit --module-subset=qtbase,qtdeclarative,qtwayland # I removed qtjsbackend from the module-subset since it isn't strictly needed
$ cd qtbase
$ git checkout 7010da2e6274febf71db40a535ce1d0c4858f143 # the qtbase commit hash confirmed to work from the README
$ cd ../qtwayland
$ git checkout 3dc9cfdbd2771c28c770d432b99e571db43fe599 # the qtwayland commit hash confirmed to work from the README
$ cd ../
$ ./configure -prefix /opt/qt5 -debug -confirm-license -opensource -egl -opengl -no-xcb-xlib
$ cd qtwayland
$ git clean -fdx
$ ../qtbase/bin/qmake CONFIG+=wayland-compositor
$ cd ../
$ make -j4 # the -j4 flag speeds up make by a factor of 4; otherwise this build takes a LONG time
$ make install
3.5 How I built libmotorcar-compositor
$ cd ~
$ git clone https://github.com/evil0sheep/motorcar.git motorcar
$ /opt/qt5/bin/qmake
$ make
3.6 我尝试构建simple-compositor
并失败的过程
$ cd ~/motorcar/src/examples/compositors/simple-compositor
$ make
g++ main.cpp -std=c++11 -I../../../../src/compositor -I../../../../src/protocol -I../../../../src/device -L../../../../lib -lmotorcar-compositor -o simple-compositor
../../../../lib/libmotorcar-compositor.so: undefined reference to `QGuiApplication::primaryScreen()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QSurfaceFormat::setDepthBufferSize(int)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWaylandCompositor::QWaylandCompositor(char const*, QFlags<QWaylandCompositor::ExtensionFlag>)'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QTimer::start(int)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QMatrix4x4::translate(float, float)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLContext::defaultFramebufferObject() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::resizeEvent(QResizeEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QGuiApplication::exec()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QSurfaceFormat::setStencilBufferSize(int)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QSurfaceFormat::~QSurfaceFormat()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `qFlagLocation(char const*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::childEvent(QChildEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QMetaObject::Connection::~Connection()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::staticMetaObject@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::metaObject() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::create()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::focusObject() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::setSurfaceType(QSurface::SurfaceType)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::wheelEvent(QWheelEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::accessibleRoot() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLTextureCache::QOpenGLTextureCache(QOpenGLContext*)@Qt_5_PRIVATE_API'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QSurfaceFormat::QSurfaceFormat(QSurfaceFormat const&)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::focusOutEvent(QFocusEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `non-virtual thunk to QWindow::format() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLShaderProgram::addShaderFromSourceCode(QFlags<QOpenGLShader::ShaderTypeBit>, char const*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QPixmap::fromImage(QImage const&, QFlags<Qt::ImageConversionFlag>)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLTexture::QOpenGLTexture(QImage const&, QOpenGLTexture::MipMapGeneration)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::qt_metacast(char const*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QScreen::geometry() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::~QObject()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLShaderProgram::QOpenGLShaderProgram(QObject*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::tabletEvent(QTabletEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::timerEvent(QTimerEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::showEvent(QShowEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::nativeEvent(QByteArray const&, void*, long*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::setGeometry(QRect const&)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QMatrix4x4::scale(float, float)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QSurfaceFormat::setSwapInterval(int)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::installEventFilter(QObject*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLShaderProgram::release()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWaylandCompositor::createOutput(QWindow*, QString const&, QString const&)'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QListData::dispose(QListData::Data*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLContext::QOpenGLContext(QObject*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLContext::create()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QImage::height() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QTimer::~QTimer()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QDateTime::currentMSecsSinceEpoch()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::eventFilter(QObject*, QEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QCoreApplication::self@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QGuiApplication::screens()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::hideEvent(QHideEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::disconnectNotify(QMetaMethod const&)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QCursor::~QCursor()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QCursor::QCursor(QPixmap const&, int, int)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLTexture::textureId() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QImage::~QImage()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::qt_metacall(QMetaObject::Call, int, void**)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLContext::functions() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObjectData::dynamicMetaObject() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLContext::setFormat(QSurfaceFormat const&)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWaylandCompositor::openUrl(QWaylandClient*, QUrl const&)'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QScreen::refreshRate() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::keyPressEvent(QKeyEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QGuiApplication::changeOverrideCursor(QCursor const&)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::qt_metacast(char const*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLShaderProgram::setUniformValue(int, QMatrix4x4 const&)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::mouseReleaseEvent(QMouseEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QImage::QImage()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::mouseDoubleClickEvent(QMouseEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::event(QEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::isExposed() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QImage::convertToFormat_helper(QImage::Format, QFlags<Qt::ImageConversionFlag>) const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::surfaceHandle() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::qt_metacall(QMetaObject::Call, int, void**)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QListData::detach(int)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::moveEvent(QMoveEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::sender() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `typeinfo for QWindow@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::mousePressEvent(QMouseEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QString::fromAscii_helper(char const*, int)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::event(QEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::QWindow(QScreen*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLTexture::~QOpenGLTexture()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `non-virtual thunk to QWindow::surfaceType() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QPixmap::~QPixmap()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLShaderProgram::bind()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QImage::width() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QGuiApplication::queryKeyboardModifiers()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::mouseMoveEvent(QMouseEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::keyReleaseEvent(QKeyEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `non-virtual thunk to QWindow::surfaceHandle() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QMetaObject::cast(QObject*) const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLContext::makeCurrent(QSurface*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::exposeEvent(QExposeEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::~QWindow()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLShaderProgram::attributeLocation(char const*) const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QImage::constBits() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QArrayData::deallocate(QArrayData*, unsigned long, unsigned long)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QGuiApplication::setOverrideCursor(QCursor const&)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::format() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `qt_assert(char const*, char const*, int)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLShaderProgram::uniformLocation(char const*) const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::showFullScreen()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLContext::currentContext()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QSurfaceFormat::QSurfaceFormat()@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::surfaceType() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QTimer::QTimer(QObject*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::focusInEvent(QFocusEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::geometry() const@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QWindow::setFormat(QSurfaceFormat const&)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::connectNotify(QMetaMethod const&)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QOpenGLContext::swapBuffers(QSurface*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::customEvent(QEvent*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QGuiApplication::QGuiApplication(int&, char**, int)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `QObject::QObject(QObject*)@Qt_5'
../../../../lib/libmotorcar-compositor.so: undefined reference to `typeinfo for QObject@Qt_5'
collect2: error: ld returned 1 exit status
make: *** [Makefile:14: compositor] Error 1
3.7 我如何找到与libmotorcar-compositor.so
相关的Qt5链接错误
以上输出结果让我发现,与libmotorcar-compositor
库相关的存在一个内部链接错误,如下所示(请注意错误的前三行):
$ cd ~/motorcar/lib
$ ls
libmotorcar-compositor.so libmotorcar-compositor.so.1 libmotorcar-compositor.so.1.0 libmotorcar-compositor.so.1.0.0
$ ldd libmotorcar-compositor.so
./libmotorcar-compositor.so: /opt/qt5/lib/libQt5Core.so.5: version `Qt_5' not found (required by ./libmotorcar-compositor.so)
./libmotorcar-compositor.so: /opt/qt5/lib/libQt5Gui.so.5: version `Qt_5_PRIVATE_API' not found (required by ./libmotorcar-compositor.so)
./libmotorcar-compositor.so: /opt/qt5/lib/libQt5Gui.so.5: version `Qt_5' not found (required by ./libmotorcar-compositor.so)
linux-vdso.so.1 (0x00007ffcb60c9000)
libQt5Widgets.so.5 => /opt/qt5/lib/libQt5Widgets.so.5 (0x00007f6084efa000)
libQt5Compositor.so.5 => /opt/qt5/lib/libQt5Compositor.so.5 (0x00007f6084e1a000)
libQt5Quick.so.5 => /opt/qt5/lib/libQt5Quick.so.5 (0x00007f60848f2000)
libQt5Qml.so.5 => /opt/qt5/lib/libQt5Qml.so.5 (0x00007f60842dc000)
libQt5Network.so.5 => /opt/qt5/lib/libQt5Network.so.5 (0x00007f6084133000)
libQt5Gui.so.5 => /opt/qt5/lib/libQt5Gui.so.5 (0x00007f6083a84000)
libQt5Core.so.5 => /opt/qt5/lib/libQt5Core.so.5 (0x00007f60834c6000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f608322a000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f608300d000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f6082c85000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f6082981000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f608276a000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f60823ca000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007f6082178000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007f6081e65000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f6081c53000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f6081914000)
libwayland-server.so.0 => /usr/lib/libwayland-server.so.0 (0x00007f6081701000)
libxkbcommon.so.0 => /usr/lib/libxkbcommon.so.0 (0x00007f60814bf000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007f60812b7000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f60810a1000)
libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007f6080e6b000)
libicui18n.so.57 => /usr/lib/libicui18n.so.57 (0x00007f60809f1000)
libicuuc.so.57 => /usr/lib/libicuuc.so.57 (0x00007f6080647000)
libicudata.so.57 => /usr/lib/libicudata.so.57 (0x00007f607ebcb000)
libpcre16.so.0 => /usr/lib/libpcre16.so.0 (0x00007f607e962000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f607e75e000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007f607e55c000)
/usr/lib64/ld-linux-x86-64.so.2 (0x00005591851f1000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007f607e332000)
libxcb-dri3.so.0 => /usr/lib/libxcb-dri3.so.0 (0x00007f607e12d000)
libxcb-present.so.0 => /usr/lib/libxcb-present.so.0 (0x00007f607df2a000)
libxcb-sync.so.1 => /usr/lib/libxcb-sync.so.1 (0x00007f607dd23000)
libxshmfence.so.1 => /usr/lib/libxshmfence.so.1 (0x00007f607db20000)
libglapi.so.0 => /usr/lib/libglapi.so.0 (0x00007f607d8f1000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00007f607d6ee000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007f607d4e6000)
libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0x00007f607d2e4000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f607d0bb000)
libxcb-glx.so.0 => /usr/lib/libxcb-glx.so.0 (0x00007f607ce9f000)
libxcb-dri2.so.0 => /usr/lib/libxcb-dri2.so.0 (0x00007f607cc9a000)
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0x00007f607ca94000)
libdrm.so.2 => /usr/lib/libdrm.so.2 (0x00007f607c882000)
libffi.so.6 => /usr/lib/libffi.so.6 (0x00007f607c679000)
libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007f607c406000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f607c202000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f607bffc000)
ldconfig
吗? - Basile Starynkevitch