关于 Cygwin Windows 编译问题的 Wine
Posted
技术标签:
【中文标题】关于 Cygwin Windows 编译问题的 Wine【英文标题】:Wine on Cygwin windows compilation issue 【发布时间】:2019-07-18 09:29:48 【问题描述】:我已经在 Windows Server 2012 R2 上安装了 Cygwin(32 位),在 Cygwin 中我正在尝试编译 Wine 1.7.5(32 位)。整个编译过程很顺利,命令如下:
./configure --without-x --without-freetype --disable-tests CFLAGS=-fgnu89-inline
然后我就可以“制作”和“制作安装”了。
现在当我尝试运行 winecfg 时,我收到以下错误:
-bash: ./winecfg: 访问损坏的共享库
当我尝试运行 wine 时,即使它在 $PATH 中定义,它也找不到它。
-bash: wine: command not found
我是 Windows 人,所以我被这个问题难住了。请问有人可以帮助我吗?
我在 Cygwin 中运行 Wine 的原因是因为我有一个客户的应用程序不能在 Windows Server 操作系统上运行。它是一个 32 位应用程序,可以在 Windows 10 或 Windows 7 甚至 Windows 2008 Server 等 64 位操作系统上运行。但我无法在 Windows Server 2012 R2/2016 中运行。所以我试图利用 Wine 来做到这一点,因为我用 BoxedWine 进行了测试,它可以运行它。但由于我遇到的各种其他问题,我不想使用 BoxedWine。
【问题讨论】:
请告诉我们uname -m
的结果。即,您运行的是 64 位还是 32 位版本的 cygwin? uname -a
的输出也可能会有所帮助。
$ uname -m i686 我所做的是用 Wine 3.1 重新编译,现在至少我没有看到 -bash: ./winecfg: Accessing a corrupted shared library 错误但运行 winecfg 没有在控制台上显示任何内容.还运行 wine 继续给出 -bash: wine: command not found error
您能否运行ldd winecfg
来看看那里出了什么问题。对于 Windows 错误,措辞看起来是错误的。
无法将输出放入 cmets 部分,因此添加为下面的答案。
检查事件查看器或运行 sxstrace。此消息可能有多种原因。尽管有这样的措辞,但它并不总是由 DLL 的问题引起的。如果您的 EXE 清单中有错误的 XML,也可能导致此消息
【参考方案1】:
ldd winecfg
ntdll.dll => /cygdrive/c/Windows/SYSTEM32/ntdll.dll (0x76ef0000)
KERNEL32.DLL => /cygdrive/c/Windows/SYSTEM32/KERNEL32.DLL (0x74e20000)
KERNELBASE.dll => /cygdrive/c/Windows/SYSTEM32/KERNELBASE.dll (0x767e0000)
advapi32.dll => /cygdrive/c/Windows/SYSTEM32/advapi32.dll (0x76da0000)
comdlg32.dll => /cygdrive/c/Windows/SYSTEM32/comdlg32.dll (0x76c10000)
gdi32.dll => /cygdrive/c/Windows/SYSTEM32/gdi32.dll (0x768c0000)
ole32.dll => /cygdrive/c/Windows/SYSTEM32/ole32.dll (0x74b70000)
shell32.dll => /cygdrive/c/Windows/SYSTEM32/shell32.dll (0x74f60000)
shlwapi.dll => /cygdrive/c/Windows/SYSTEM32/shlwapi.dll (0x76750000)
user32.dll => /cygdrive/c/Windows/SYSTEM32/user32.dll (0x76280000)
uxtheme.dll => /cygdrive/c/Windows/SYSTEM32/uxtheme.dll (0x6fde0000)
winmm.dll => /cygdrive/c/Windows/SYSTEM32/winmm.dll (0x6f610000)
libwine.dll => /usr/local/lib/libwine.dll (0x713c0000)
cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000)
msvcrt.dll => /cygdrive/c/Windows/SYSTEM32/msvcrt.dll (0x74aa0000)
sechost.dll => /cygdrive/c/Windows/SYSTEM32/sechost.dll (0x76bc0000)
RPCRT4.dll => /cygdrive/c/Windows/SYSTEM32/RPCRT4.dll (0x76a80000)
combase.dll => /cygdrive/c/Windows/SYSTEM32/combase.dll (0x765a0000)
WINMMBASE.dll => /cygdrive/c/Windows/SYSTEM32/WINMMBASE.dll (0x6f570000)
SspiCli.dll => /cygdrive/c/Windows/SYSTEM32/SspiCli.dll (0x76d40000)
cfgmgr32.dll => /cygdrive/c/Windows/SYSTEM32/cfgmgr32.dll (0x767a0000)
DEVOBJ.dll => /cygdrive/c/Windows/SYSTEM32/DEVOBJ.dll (0x736a0000)
【讨论】:
以上是关于关于 Cygwin Windows 编译问题的 Wine的主要内容,如果未能解决你的问题,请参考以下文章
Cygwin 的 Linux 交叉编译器 -- 无法在线找到 Linux Cygwin 编译器工具链