关于 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的主要内容,如果未能解决你的问题,请参考以下文章

win10下安装Cygwin配置gcc编译环境

Cygwin和MinGW有什么区别?

Cygwin 的 Linux 交叉编译器 -- 无法在线找到 Linux Cygwin 编译器工具链

Windows 上的 Matlab:将“mex”默认编译器更改为 Cygwin 的 GCC [重复]

我如何摆脱 glu.h 中的这些编译器错误?

用cygwin在windows中链接linux静态库