10

wine无法运行exe解决方案(Path not find)

 3 years ago
source link: https://blog.csdn.net/yanxiangtianji/article/details/18048425
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

wine无法运行exe解决方案(Path not find)

我下载的wine一直无法正常运行exe文件,折腾了好久,网上大量搜索也没有发现问题原因(貌似大家都没有遇到过一样),反复实验排除了系统版本的问题,wine版本问题。最后终于发现原来是wine与exe文件路径配置的问题。

针对问题:

wine正常安装后,无法运行非Windows自带的exe、bat等其他合法的Windows可执行文件,即自行安装(解压)的Windows程序无法运行。

问题现象:

在图形界面里面双击exe文件时,弹出一个wine对话框,内容为:"Path not find"。

在命令行中使用相对路径执行该文件,提示(假设程序为/home/userx/abc.exe):

wine: cannot find L"unix\\home\\userx\\abc.exe"

若在命令行下使用完整的路径名也无法运行并会提示:

wine: cannot find L"\\home\\userx\\abc.exe"

这些因素与问题无关:

32位或64位的linux系统。

wine版本。

问题原因:

wine只能运行放置在“在wine中配置了Windows盘符的目录(含子目录)”下面的exe程序,即文件需要有一个合法的Windows路径才能运行。
默认情况下,只有C:是合法的,它被自动配置为“$HOME/.wine/driver_c”。
详细解释:

wine在运行exe的时候,需要先将这个exe文件所在的路径用合法的Windows路径表示(在$HOME/.wine/dosdevices目录中以符号链接的形式保存了合法的路径映射(从虚拟Windows盘符到本地Linux路径))。这里就涉及一个Linux路径到Windows路径的映射,为了简化映射逻辑和方便使用,wine只允许进行磁盘分区级别的映射,即将某个Linux目录映射为一个虚拟Windows分区,由此访问该Linux目录下的目录和文件在wine中就完全等效于访问该虚拟Windows分区下的目录和文件。默认情况wine只为我们将“$HOME/.wine/driver_c”配置为虚拟的C盘,因此只有“$HOME/.wine/driver_c”下的文件才有合法的Windows路径,才能改被wine成功加载并运行。

解决方法:

本质上是让所运行的exe文件具有合法的能够被wine识别的Windows路径映射。

把需要运行的exe程序放置在$HOME/.wine/driver_c下的某个位置。

为Linux中放置exe程序的目录(或其某个上级目录)配置路径映射。

配置方法有二:

2.1修改$HOME/.wine/dosdevices/下的空白符号链接文件,让其中某一个链接文件指向需要的路径。

2.2使用winecfg在图形界面中配置location部分。值得一提的是:有一个auto detection功能,它会自动提取磁盘分区信息并为各个分区所对应的Linux挂载点生成一个对应的Windows盘符(就类似Windows的一个物理分区对应一个盘符的显示方式,只是C盘不同了)。

原载于http://blog.csdn.net/yanxiangtianji

转载请注明出处


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK