12

我正在尝试这样做:
使用 automake 配置脚本在 64 位 Linux 上构建 32 位?
对我不起作用 :( 编译酒。我在 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.

4

7 回答 7

12
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 错误。

于 2014-03-06T10:56:42.483 回答
10

要在 64 位机器上构建 32 位 wine,您可以使用 LXC(Linux 容器),它是一个操作系统级虚拟化环境,用于运行多个隔离的 Linux 系统。这是迄今为止最简单的解决方案,因为 Linux(例如 Ubuntu 或 Debian)使构建 32 位 wine 变得困难,因为 64 位系统没有配备完整的 32 位开发库(参见:Bug #990982) .

所以编译 32 位和 64 位 wine 的基本方法是:

  1. 构建 64 位 wine
  2. 在 lxc 中构建 32 位工具
  3. lxc中构建32位wine,参考64位wine和32位工具 1.前面步骤中构建
  4. 安装 32 位 wine
  5. 安装 64 位 wine

在 Ubuntu 上的Building Biarch (Shared WoW64) Wine页面上,我们可以阅读以下说明:

  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. 使用 Ubuntu 模板创建一个名为“my32bitbox”的 32 位容器,并将您的主目录绑定到容器中的 /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. 现在,您在容器中。像往常一样对 Wine 进行树外构建,只是为了获取工具。您必须先安装所有必需的先决条件。例如:

    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-bit wine 来强制构建最后一点:

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

    sudo shutdown -h now
    

    这会让你回到你的真实机器中。接下来,您需要删除所有现有的 Wine 包。您可以从命令行执行此操作,但使用 aptitude 或 GUI 包管理工具之一可能更容易。您将需要 wine-mono、wine-gecko 和可选的 winetricks 来编译您的 wine 版本。但是,这些软件包可能依赖于现有的 wine 安装,这可能会迫使您删除它们。

  12. 将新建的wine安装到你的真机中:

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

    警告:当你安装本地构建的 Wine 版本时,包管理系统不会知道它的存在,因为它不是来自一个包。因此,以后可能会破坏其依赖关系或安装冲突的 wine 版本,而不会收到包管理工具的警告。您可以通过创建一个包或通过为包设置“Pin-Priority: -1”来阻止具有 apt-pinning 的冲突包来防止这种情况。

  13. 接下来,安装 Mono、Gecko 和可选的 winetricks,如果由于依赖于冲突的 wine 包而必须删除它们的包。

笔记:

  • 上述许多命令都需要 root 权限。您的用户帐户需要有权访问 root via,sudo或者您需要切换到用户帐户。
  • 无需删除您的发行版并“安装”您的编译版本(32 位、64 位)您只需调用适合 Windows 应用程序的个人版本的 wine。例如:~/wine32/wine32 ~/.wine/path_to_winapp/my_app
于 2015-06-14T13:06:31.327 回答
2

在 Debian Wheezy 上对我有一定作用的东西:

dpkg --add-architecture i386
apt-get update

启用从 i386 存储库安装

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

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

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.

但它在技术上是可选的。

于 2013-08-31T21:54:33.150 回答
2

您可以解决 X 错误:

sudo apt-get install xorg-dev
于 2014-03-05T13:37:36.130 回答
1

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

./configure --disable-win64
于 2012-12-08T18:15:16.120 回答
1

我猜你使用现在支持多架构的 Ubuntu x64。换句话说,在 64 位系统上,您只能构建 Wine-x64 版本。目前在 Ubuntu 12.04 x64 上构建 32bit Wine 似乎有问题。

所以只需运行:

./configure --enable-win64
于 2015-03-09T02:42:17.437 回答
0

Wine wiki 有一种简单的方法可以在 64 位系统上安装所需的 32 位开发库,使用 chroot:http ://wiki.winehq.org/WineOn64bit

于 2013-01-12T15:59:45.773 回答