Building 32-bit Wine on a 64-bit (x86-64) system

EL6 (RHEL6 and SL6)

Required packages for proper building of 32-bit Wine on 64-bit EL6

yum install --setopt=protected_multilib=false install libXrender-devel.i686  mingw32-libxml2 libxslt-devel.i686 gnutls-devel.i686 libjpeg-devel.i686 libpng-devel.i686 freetype-devel.i686 libX11-devel.i686 glibc-devel.i686 alsa-lib-devel.i686 libsndfile-devel.i686 readline-devel.i686 glib2.i686 glibc-devel.i686 libgcc.i686 libstdc++-devel.i686 pulseaudio-libs-devel.i686 cmake portaudio-devel.i686 openal-soft-devel.i686 audiofile-devel.i686 freeglut-devel.i686 lcms-devel.i686 libieee1284-devel.i686 openldap-devel.i686 unixODBC-devel.i686 sane-backends-devel.i686 fontforge libgphoto2-devel.i686 isdn4k-utils-devel.i686 mesa-libGL-devel.i686 mesa-libGLU-devel.i686 libXxf86dga-devel.i686 libXxf86vm-devel.i686 giflib-devel.i686 cups-devel.i686 gsm-devel.i686 libv4l-devel.i686 fontpackages-devel ImageMagick-devel.i686 openal-soft-devel.i686 libX11-devel.i686 docbook-utils-pdf libtextcat tex-cm-lgc libXext-devel-1.3.2-2.1.el6.i686 libxml2-devel-2.7.6-17.el6_6.1.i686 zlib-devel-1.2.3-29.el6.i686 libjpeg-turbo-devel-1.2.1-3.el6_5.i686

Trying to rebuild the epel 6 wine srpms (wine-1.2.3-1.el6.src.rpm) in 32-bit mode, I had to do the following manual changes to the spec files:

  • portaudio.spec: add an "export CC=‘gcc -m32 -march=i686‘" in an %ifarch %{ix86}
  • wine.spec: add an "export CC=‘gcc -m32 -march=i686‘" in an %ifarch %{ix86}, and remove ‘TARGETFLAGS="" %{?_smp_mflags}‘ after %{make}

The resulting packages (src and binary) are available here http://www.gymglish.com/opensource/rpms/centos6-rpms/

Then, I could build the rpms in this order:

rpmbuild -ba --sign --target i686 portaudio.spec
rpmbuild -ba --sign --target i686 openal-soft.spec
rpmbuild -ba --sign --target i686 nss-mdns.spec
rpmbuild -ba --sign --target i686 wine.spec
rpmbuild -ba --sign wine-docs.spec


wine下很多中文显示成框框解决方法:

1、准备字体

为了让 Windows 应用程序看上去更美观,所以需要 Windows 下面的字体。

到windows系统下C:\Windows\Fonts目录拷贝 simsun.ttc 文件。复制到~/.wine/drive_c/windows/Fonts目录。

创建一个 simfang.ttc 是许多 Windows 应用默认使用 simfang.ttc 字体。

2、修改 ~/.wine/system.reg

装好字体后,还要修改一下 Wine 的注册表设置,指定与字体相关的设置:

gedit ~/.wine/system.reg

(一定要使用 gedit 或其他支持 gb2312/utf8 编码的编辑器修改这些文件,否则文件中的中文可能变乱码)

搜索: LogPixels

找到的行应该是:[System\\CurrentControlSet\\Hardware Profiles\\Current\\Software\\Fonts]

将其中的:

"LogPixels"=dword:00000060

改为:

"LogPixels"=dword:00000070

搜索: FontSubstitutes

找到的行应该是:[Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes]

将其中的:

"MS Shell Dlg"="Tahoma"

"MS Shell Dlg 2″="Tahoma"

改为:

"MS Shell Dlg"="SimSun"

"MS Shell Dlg 2″="SimSun"

3、修改 ~/.wine/drive_c/windows/win.ini

gedit ~/.wine/drive_c/windows/win.ini

在文件末尾加入:

[Desktop]

menufontsize=13

messagefontsize=13

statusfontsize=13

IconTitleSize=13

4、最关键的一步,把下面的代码保存为zh.reg,然后终端执行regedit zh.reg。

代码:

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]

"Arial"="simsun"

"Arial CE,238"="simsun"

"Arial CYR,204"="simsun"

"Arial Greek,161"="simsun"

"Arial TUR,162"="simsun"

"Courier New"="simsun"

"Courier New CE,238"="simsun"

"Courier New CYR,204"="simsun"

"Courier New Greek,161"="simsun"

"Courier New TUR,162"="simsun"

"FixedSys"="simsun"

"Helv"="simsun"

"Helvetica"="simsun"

"MS Sans Serif"="simsun"

"MS Shell Dlg"="simsun"

"MS Shell Dlg 2"="simsun"

"System"="simsun"

"Tahoma"="simsun"

"Times"="simsun"

"Times New Roman CE,238"="simsun"

"Times New Roman CYR,204"="simsun"

"Times New Roman Greek,161"="simsun"

"Times New Roman TUR,162"="simsun"

"Tms Rmn"="simsun"

好了,之后你会发现中文是多么的美丽。。。

from: http://wiki.winehq.org/WineOn64bit#head-25bf815250cd2c1399a85b153e15a2f2cabf246e

时间: 2024-12-23 09:40:50

Building 32-bit Wine on a 64-bit (x86-64) system的相关文章

64位主机64位oracle下装32位客户端ODAC(NFPACS版)

64位主机64位oracle下装32位客户端ODAC(NFPACS版) by dd 1.下载Oracle Data Access Components(ODAC) Xcopy的两个版本: x86:(我们用到的是这个ODAC1120320Xcopy_32bit)http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html x64:http://www.oracle.com/technetwork/dat

ubuntu16 64位 编译64位程序和32位程序

安装了ubuntu16 64位的系统,想在该环境下用gcc编译64位和32位的程序 默认已经安装了64位环境的gcc 1. 首先确认安装的环境是不是64位的 [email protected]:~/Desktop$ dpkg --print-architecture 以下输出表示为64位的 amd64 2. 确认系统是否支持多架构环境 [email protected]:~/Desktop$ dpkg --print-foreign-architectures 以下输出表示支持32位的架构 i3

Win7(64)+eclipse(64)+tomcat7(64)+jdk7(64)开发环境配置

Win7(64) + eclipse(64)+ tomcat7(64)+ jdk7(64)开发环境配置 一直开发都是用myeclipse,这次尝试了一下eclipse,并且开发工具全部采用最新版本,配置的时候出现了各种各样的问题,总算总结出一个标准步骤,和大家分享一下. 一.到官网下载文件,全部选择for window 64位最新版本 二.安装配置 1.安装jdk-7u17-windows-x64,版本:jdk7 for windows 64位,配置环境变量JAVA_HOME,值为jdk安装目录

Windows7中搭建Android x86 64及armv8-a操作步骤

1.        从https://developer.android.com/tools/sdk/ndk/index.html 下载android-ndk-r10d-windows-x86_64.exe 和 android-ndk-r10d-linux-x86_64.bin: 2.        在Ubuntu1404 64位中通过终端安装ndkr10d:./android-ndk-r10d-linux-x86_64.bin ; 3.        通过命令sudo  vi  /etc/pr

Linux x86 64内核终止D状态的进程

在上一篇文章<Linux x86内核终止D状态的进程>中,我展示了32位x86系统中如何编码杀死D进程.本文我将展示一种64位x86系统上的方法.        说实话,64位系统上做这样的事是比较难的,因为你无法通过修改p->thread.ip来到达将进程拽出死循环的目的.要想知道64位系统上到底该怎么把进程执行绪引出,我们得先看看"标准"的做法是什么. 标准的做法就是fork时的行为,一个新进程刚刚被创建,它第一次进入运行状态之前,并不是通过switch_to切出

Socket与系统调用深度分析 ——X86 64环境下Linux5.0以上的内核中

1.Socket与系统调用——概述 Socket API编程接口之上可以编写基于不同网络协议的应用程序: Socket接口在用户态通过系统调用机制进入内核: 内核中将系统调用作为一个特殊的中断来处理,以socket相关系统调用为例进行分析: socket相关系统调用的内核处理函数内部通过“多态机制”对不同的网络协议进行的封装方法: 下面会将Socket API编程接口.系统调用机制及内核中系统调用相关源代码. socket相关系统调用的内核处理函数结合起来分析,并在X86 64环境下Linux5

各版本x86 / 64位MongoDB下载地址

各版本x86 / 64位MongoDB下载地址: linux: http://dl.mongodb.org/dl/linux/x86_64 windows: http://dl.mongodb.org/dl/win32/x86_64

linux 64位下安装wine1.6 Windows模拟器(用来运行.exe文件) 编译安装32位wine

cd yum groupinstall 'Development Tools' -y yum install libX11-devel freetype-devel -y wget http://prdownloads.sourceforge.NET/wine/wine-1.6.tar.bz2 tar -jvxf wine-1.6.tar.bz2 cd wine-1.6 编译之前先安装32位运行库不然不能编译: yum install alsa-lib-devel.i686 libsndfile

查看Oracle 32位还是64位(x86 or x64)

方法一:使用sqlplus ###64位: [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Fri Oct 318:44:05 2014 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release11.2

现代32位或64位x86汇编

在学习了基于8086的x86汇编指令后,继续学习了32位.64位的x86汇编指令.其基本原理与8086基本一致,只是增加了X87浮点单元,以及用于浮点运算和多媒体处理的SIMD(Single Instruction Multiple Data,单指令多数据流)指令. 无论是64位.32位.16位.8位处理器,都是可以(不是绝对)向前兼容的. 1.寄存器变化 32位:(1)通用寄存器扩展到32位,增加到8个(2)增加了x87浮点单元,及相关指令(3)地址总线32位 64位处理器:(1)通用寄存器扩