Linux:如何在Linux中运行Windows程序

来源:互联网 发布:云朵网校源码 编辑:程序博客网 时间:2024/04/30 07:47

原文链接:http://blog.csdn.net/ddk3001/article/details/52469283

1 要求

本文基于下面的要求,简要说明在Linux中运行Windows程序的方法。

1、Windows程序:wintest

wintest是32位Windows应用程序,需要安装后才能使用。
安装后,可以使用命令行执行文件转换:wintest.exe e:\in.txt e:\out.txt
wintest程序的功能是读入in.txt,输出out.txt。

2、在Redhat中运行wintest程序

要求在Redhat 6.3(64位)中运行wintest程序,即Redhat提供in.txt,wintest完成转换,输出out.txt。

2 使用Windows虚拟机运行程序

1、安装虚拟机:Redhat中安装VirtualBox,VirtualBox中安装Win7虚拟机
2、Win7虚拟机安装虚拟机增强功能(设备 - 安装增强功能),然后安装wintest程序。
3、使用VirtualBox设置Win7虚拟机的共享目录,它是Redhat中的一个目录。
4、启动Win7虚拟机后,在浏览器中就可以看到共享目录。
5、Redhat中将in.txt放入共享目录,在Win7执行wintest程序,它从共享目录中读取in.txt,将out.txt放入共享目录,这样,Redhat就获得了out.txt。

3 使用Wine运行Windows程序

3.1 使用源代码安装Wine

参考:https://wiki.archlinux.org/index.php/Wine_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

1、设置yum源
参考:http://www.linuxidc.com/Linux/2013-07/87383.htm

主要步骤:
1)下载repo文件:wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
2)修改这个repo文件,注意改成6,不是6.3,见目标网页的readme说明。
3)把这个repo文件拷贝到 /etc/yum.repos.d
4)执行 yum clean all
5)执行 yum makecache

2、安装32位开发库
参考:http://blog.sina.com.cn/s/blog_4ba5b45e0102e5bj.html

yum install alsa-lib-devel.i686 libsndfile-devel.i686
readline-devel.i686 glibc-devel.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 openal-soft-devel.i686 libX11-devel.i686
docbook-utils-pdf libtextcat tex-cm-lgc freetype-devel.i686
libXrender-devel.i686 libxml2-devel.i686 libjpeg-turbo-devel.i686

3、安装Wine

1)下载Wine源码包:https://www.winehq.org/download/

2)解压源码包
例如:tar jxvf wine-1.8.4.tar.bz2

2)安装

./configure
make
make install

4、安装wintest程序

执行wineconsole,在窗口中安装wintest程序。
说明:启动wineconsole,会提示安装:Wine Mono 、Wine Gecko,可以不安装。

说明:可以使用wine命令进行Windows程序的静默安装,请自行网上搜索msiexec和静默安装,主要选项是 /i /qb /qn 。

5、执行wintest程序
参考: 如何运行Wine

1)在wineconsole窗口中执行
例如: wintest z:\in.txt z:\out.txt

2)在Redhat命令行中执行
例如: wine z:\\wintest z:\\in.txt z:\\out.txt

3.2 使用yum安装Wine

参考:http://www.tecmint.com/install-wine-in-rhel-centos-and-fedora/

1、设置yum源
与3.1相同

2、安装Wine

执行下列命令:

yum –disablerepo=epel -y update ca-certificates
yum install epel-release
yum install wine

3、其余步骤
与3.1相同

3.3 使用rpm安装Wine

把yum install wine安装过程中下载的所有rpm文件拷贝到一个目录中,
执行安装命令 rpm --nodeps -ivh *
会提示有冲突,把产生冲突的rpm文件删掉,再尝试安装,最终能够安装成功。

3.4 自动执行Windows GUI程序

如果要想在Redhat系统启动后,自动执行Windows GUI程序,需要增加如下工作。

1、安装Redhat系统时需要安装桌面

以KDE桌面为例,在安装Redhat Server版时需要安装:KDE桌面、X窗口系统、字体、桌面平台、继承 X Windows系统的兼容性、输入法、等

2、使能系统启动自动登录

修改 /etc/kde/kdm/kdmrc

AutoLoginEnable=true
AutoLoginUser=root

3、设置环境变量

export DISPLAY=:0

4、执行Windows GUI程序

在C/C++程序中可以调用:

#include <unistd.h>int execl(const char *path, const char *arg, ...);#include<stdlib.h>int system(const char * string);
0 0