无法在64位linux上构建32位Wine

时间:2012-12-08 18:10:24

标签: linux

我正在尝试这样做:
Build 32bit on 64 bit Linux using an automake configure script?
对我不起作用:( 编译葡萄酒。我在config.log中找到了这个:

configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Wine"
| #define PACKAGE_TARNAME "wine"
| #define PACKAGE_VERSION "1.5.19"
| #define PACKAGE_STRING "Wine 1.5.19"
| #define PACKAGE_BUGREPORT "wine-devel@winehq.org"
| #define PACKAGE_URL "http://www.winehq.org"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }

配置失败,并显示:Cannot build a 32-bit program, you need to install 32-bit development libraries.

7 个答案:

答案 0 :(得分:10)

apt-get install gcc-multilib libasound2-dev:i386 libgsm1-dev:i386 libjpeg8-dev:i386 liblcms2-dev:i386 libldap2-dev:i386 libmpg123-dev:i386 libopenal-dev:i386 libv4l-dev:i386 libx11-dev:i386 libxinerama-dev:i386 libxml2-dev:i386 zlib1g-dev:i386 

apt-get install libcapi20-dev:i386 libcups2:i386 libdbus-1-3:i386 libfontconfig:i386 libfreetype6:i386 libglu1-mesa:i386 libgnutls26:i386 libgphoto2-2:i386 libncurses5:i386 libosmesa6:i386 libsane:i386 libxcomposite1:i386 libxcursor1:i386 libxi6:i386 libxrandr2:i386 libxslt1.1:i386 ocl-icd-libopencl1:i386

让我超过X错误。

答案 1 :(得分:7)

要在64位计算机上构建32位wine,您可以使用LXC(Linux Containers),这是一个操作系统级虚拟化环境,用于运行多个独立的Linux系统。到目前为止,它是最简单的解决方案,因为Linux(如Ubuntu或Debian)使得构建32位葡萄酒变得困难,因为64位系统并没有配备完整的32位开发库(请参阅:Bug #990982)。

因此,编译32位和64位葡萄酒的基本方法是:

  1. 构建64位葡萄酒
  2. 在lxc中构建32位工具
  3. 在lxc中构建32位葡萄酒,指的是前面步骤中构建的64位葡萄酒和32位工具。
  4. 安装32位葡萄酒
  5. 安装64位葡萄酒
  6. 在页面Building Biarch (Shared WoW64) Wine On Ubuntu上,我们可以阅读以下说明:

    1. 安装64位先决条件:

      sudo apt-get update
      sudo apt-get build-dep wine
      
    2. 构建64位葡萄酒:

      mkdir $HOME/wine64
      cd $HOME/wine64
      ../wine-git/configure --enable-win64
      make -j4
      
    3. 安装lxc:

      sudo apt-get install lxc
      
    4. 创建一个名为" my32bitbox"的32位容器。使用Ubuntu 模板并将您的主目录绑定到的/ home目录中 容器:

      sudo lxc-create -t ubuntu -n my32bitbox -- --bindhome $LOGNAME -a i386
      
    5. 将apt配置从主机复制到lxc容器:

      sudo cp -R /etc/apt /var/lib/lxc/my32bitbox/rootfs/etc
      
    6. 启动容器;在控制台登录提示它给你,日志 使用您的用户名和密码。

      sudo lxc-start -n my32bitbox
      
    7. 现在您已进入容器内的真实主目录。如果你 不在容器中(你没有提示 用户名@ my32bitbox),然后打开一个新终端并:

      sudo lxc-attach -n my32bitbox
      login yourusername+password
      
    8. 现在,你在容器中。做一个树外的葡萄酒 正常,只是为了获得工具。您必须安装所有必需的 先决条件。例如:

      sudo apt-get update
      sudo apt-get install python-software-properties git-core
      sudo apt-get build-dep wine
      mkdir $HOME/wine32-tools
      cd $HOME/wine32-tools
      ~/wine-git/configure
      make -j4
      
    9. 仍然在容器内,再次执行,这次指向 64位数据构建,以及为工具构建的32位工具:

      mkdir $HOME/wine32
      cd $HOME/wine32
      ~/wine-git/configure --with-wine64=$HOME/wine64 --with-wine-tools=$HOME/wine32-tools
      make -j4
      
    10. 仍在容器内,安装32位葡萄酒以强制使用 最后一点建设:

      cd $HOME/wine32
      sudo make install
      
    11. 当仍然在容器内时,将其关闭:

      sudo shutdown -h now
      

      这会让你退回真实的机器。接下来,你需要 删除所有现有的Wine包。您可以从命令执行此操作 但是使用aptitude或其中一个GUI可能更容易 包管理工具。你需要葡萄酒单声道,葡萄酒壁虎和 为您编译的葡萄酒版本选择winetricks。然而, 这些包装可能取决于现有的葡萄酒装置 可能会强迫您将其删除。

    12. 将新制作的葡萄酒安装到您的真机中:

      cd $HOME/wine32
      sudo make install
      cd $HOME/wine64
      sudo make install
      

      警告:当您安装本地构建的Wine版本时, 包管理系统不知道它存在,因为它没有 来自一个包。因此有可能在以后打破它 依赖或安装冲突版本的葡萄酒没有 来自包管理工具的警告。你可以防止这种情况发生 创建一个包或阻止冲突的包 通过设置"引脚优先级来设置引脚:-1"对于包裹。

    13. 接下来,如果必要的话,安装Mono,Gecko和任选的winetricks  因为依赖冲突的葡萄酒而移除他们的包裹  包。
    14. 注意:

      • 上述许多命令都需要root权限。您的用户帐户需要通过sudo访问root用户,或者您需要切换到用户帐户。
      • 没有必要删除您的发行版本并安装'您的编译版本(32位,64位)您只需调用适合Windows应用程序的个人版葡萄酒。例如:~/wine32/wine32 ~/.wine/path_to_winapp/my_app

答案 2 :(得分:2)

Debian Wheezy在某种程度上对我有用:

dpkg --add-architecture i386
apt-get update

启用i386 repos的安装

apt-get install ia32-libs libc6-dev-i386 lib32z1-dev lib32bz2-dev

安装32位库。我实际上仍然遇到X库的问题:

configure: error: X 32-bit development files not found. Wine will be built
without X support, which probably isn't what you want. You will need
to install 32-bit development packages of Xlib/Xfree86 at the very least.
Use the --without-x option if you really want this.

但它在技术上是可选的。

答案 3 :(得分:1)

不要那样做。默认情况下,即使在64位系统上,Wine也会为32位构建(因为它必须运行32位Windows程序。)它还可以同时构建64位Wine。如果要禁用它,请使用以下命令对其进行配置:

./configure --disable-win64

答案 4 :(得分:1)

你可以解决X错误:

sudo apt-get install xorg-dev

答案 5 :(得分:1)

我猜您使用现在支持多架构的Ubuntu x64。换句话说,在64位系统上,您只能构建Wine-x64版本。在Ubuntu 12.04 x64上构建32位Wine似乎就像现在一样。

所以只需运行:

./configure --enable-win64

答案 6 :(得分:0)

Wine wiki可以使用chroot在64位系统上轻松安装所需的32位开发库:http://wiki.winehq.org/WineOn64bit