C++ 在64位操作系统[Ubuntu]上运行32位操作系统中的应用程序构建bash:没有这样的文件或目录,C++;,Qt

C++ 在64位操作系统[Ubuntu]上运行32位操作系统中的应用程序构建bash:没有这样的文件或目录,C++;,Qt,c++,qt,ubuntu,C++,Qt,Ubuntu,我正在运行64位操作系统(Ubuntu 13.04)。在我的VirtualBox机器上,我有一个Linux Mint 15 32位。我在LinuxMint32位上构建了我的Qt应用程序,现在我想在安装在硬盘上的基本操作系统上运行它。但当我想这样做时,bash说: /app没有这样的文件或目录 我确信app在给定的目录中,并且是可执行的(didchmod u+x app) 是否可以在64位操作系统上运行32位Qt应用程序 安装后:sudo apt get install ia32 libs我收到一

我正在运行64位操作系统(Ubuntu 13.04)。在我的VirtualBox机器上,我有一个Linux Mint 15 32位。我在LinuxMint32位上构建了我的Qt应用程序,现在我想在安装在硬盘上的基本操作系统上运行它。但当我想这样做时,bash说:

/app没有这样的文件或目录

我确信
app
在给定的目录中,并且是可执行的(did
chmod u+x app

是否可以在64位操作系统上运行32位Qt应用程序

安装后:
sudo apt get install ia32 libs
我收到一个新错误:

/app:加载共享库时出错:libQt5Widgets.so.5:无法打开共享对象文件:没有这样的文件或目录

但是我的64位操作系统上安装了Qt

更新:

以下是我所做的(在我编译了应用程序-32位操作系统的机器上):

它给了我:

linux-gate.so.1 =>  (0xb7775000)
    libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xb75b0000)
    libQt5Widgets.so.5 => /usr/lib/i386-linux-gnu/libQt5Widgets.so.5 (0xb6fa2000)
    libQt5Gui.so.5 => /usr/lib/i386-linux-gnu/libQt5Gui.so.5 (0xb6bc3000)
    libQt5Core.so.5 => /usr/lib/i386-linux-gnu/libQt5Core.so.5 (0xb6790000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb66a7000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb6664000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb6647000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6493000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb648e000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb6475000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb645a000)
    libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xb640a000)
    libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb6308000)
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb61d1000)
    libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xb61a8000)
    libGL.so.1 => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 (0xb614f000)
    libicui18n.so.48 => /usr/lib/i386-linux-gnu/libicui18n.so.48 (0xb5f7b000)
    libicuuc.so.48 => /usr/lib/i386-linux-gnu/libicuuc.so.48 (0xb5e15000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb5e0c000)
    /lib/ld-linux.so.2 (0xb7776000)
    libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xb5e05000)
    libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb5dc4000)
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb5da2000)
    libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xb5d8a000)
    libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb5d78000)
    libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xb5d74000)
    libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xb5d6d000)
    libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xb5d6a000)
    libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xb5d51000)
    libxcb-dri2.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri2.so.0 (0xb5d4c000)
    libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xb5d46000)
    libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xb5d39000)
    libicudata.so.48 => /usr/lib/i386-linux-gnu/libicudata.so.48 (0xb4bc8000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb4bc3000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb4bbc000)
我在我的32位机器中找到了这些文件,复制了所有文件,还有可执行文件,所以现在我有了这样的目录层次结构:

platforms
dir中,我只有:libqlinuxfb.so和libqxcb.so。当我尝试在64位操作系统上运行它时,我做到了:

export-LD\u LIBRARY\u PATH=$LD\u LIBRARY\u PATH:。

然后:

ldd ./app 
        linux-gate.so.1 =>  (0xf77b4000)
        libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xf75e3000)
        libQt5Widgets.so.5 (0xf6fd5000)
        libQt5Gui.so.5 (0xf6bf6000)
        libQt5Core.so.5 (0xf67c3000)
        libstdc++.so.6 (0xf66da000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf6697000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf667a000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf64c6000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf64c1000)
        libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf64a8000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf648d000)
        libgobject-2.0.so.0 (0xf643d000)
        libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf633b000)
        libX11.so.6 (0xf6204000)
        libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xf61db000)
        libGL.so.1 => /usr/lib32/nvidia-310/libGL.so.1 (0xf60fb000)
        libicui18n.so.48 (0xf5f27000)
        libicuuc.so.48 (0xf5dc1000)
        librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf5db8000)
        /lib/ld-linux.so.2 (0xf77b5000)
        libffi.so.6 (0xf5db1000)
        libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf5d70000)
        libxcb.so.1 (0xf5d4d000)
        libnvidia-tls.so.310.44 => /usr/lib32/nvidia-310/tls/libnvidia-tls.so.310.44 (0xf5d49000)
        libnvidia-glcore.so.310.44 => /usr/lib32/nvidia-310/libnvidia-glcore.so.310.44 (0xf4027000)
        libXext.so.6 (0xf4015000)
        libicudata.so.48 (0xf2ea4000)
        libXau.so.6 (0xf2e9f000)
        libXdmcp.so.6 (0xf2e98000)
现在我得到的错误是:

Failed to load platform plugin "xcb". Available platforms are: 
linuxfb
xcb

Aborted (core dumped)

是的,这是可能的。您需要程序所需的所有共享库的32位版本。检查机器上是否有Qt 32位变量。另请参见。@n.m:我在哪里可以找到这些库?请重新阅读该链接。@n.m:请反复阅读,您能看到我的更新吗?问题仍然存在链接是否显示“从32位机器复制文件”?我相信它给出了一个不同的建议。你试过了吗?如果您坚持复制文件(不是一种非常可扩展的方法,但无论什么都会浮在船上),请尝试确定应用程序试图在运行时加载哪些库(尝试在32位计算机上尝试加载
strace-f-e open./app 2>&1 | grep'\.so.*='
)。
Failed to load platform plugin "xcb". Available platforms are: 
linuxfb
xcb

Aborted (core dumped)