从源代码编译 cygwin1.dll

Posted

技术标签:

【中文标题】从源代码编译 cygwin1.dll【英文标题】:Compile cygwin1.dll from its source code 【发布时间】:2018-02-12 19:33:17 【问题描述】:

我想在 cygwin1.dll 中为我的项目编辑一些代码。所以,我从这两个 url 克隆 git 存储库:

    https://github.com/mirror/newlib-cygwin.git git://sourceware.org/git/newlib-cygwin.git

我已经使用 cygwin 和 mingw-w64(以及 WSL)安装了 gcc、g++、make。但它们都没有生成 DLL 文件。我也遵循命令./configuremake。命令只生成目标文件。是否可以?

【问题讨论】:

当然有可能。我猜你缺少一些工具。运行make |& tee make.log,看看为什么没有编译cygwin1.dll PS:repository #1 是 #2 的镜像 两者都是。也可以从 cygwin 环境中配置 完整的构建日志。它不适合终端的缓冲区。寻找 cygwin0.dll 和 cygwin1.dll 【参考方案1】:

我有两个不同的问题。

首先,我按照cygwin FAQ: How do I build Cygwin on my own? 中的步骤操作。我忘记安装mingww64_x86_64-gcc-g++ 包。因此,我使用以下命令安装了它们:
setup-x86_64.exe -q -P gcc-g++ -P make -P perl -P cocom -P gettext-devel -P libiconv-devel -P zlib-devel
setup-x86_64.exe -q -P mingw64-x86_64-gcc-core -P mingw64-i686-gcc-g++ -P mingw64-i686-zlib 
setup-x86_64.exe -q -P mingw64-x86_64-gcc-g++ -P mingw64-x86_64-zlib
其次,我使用make |& tee make.log 记录了make 命令的输出。谢谢@matzeri 的日志提示。然后我在make.log 文件中出现如下错误:
../../.././winsup/cygwin/cygmagic: line 25: /usr/bin/awk: cannot
execute binary file: Exec format error
*** WARNING WARNING WARNING WARNING WARNING ***
*** ../../.././winsup/cygwin/child_info.h: magic number for
CHILD_INFO_MAGIC changed old 0xc96f5e9U != new

不知何故,awk(与gawk 硬链接)在cygwin 中不起作用。所以我用 setup-x86_64.exe 安装了awk 包。现在我可以轻松编译cygwin.dll了。

【讨论】:

以上是关于从源代码编译 cygwin1.dll的主要内容,如果未能解决你的问题,请参考以下文章

没有 cygwin1.dll 的 Libx264?

程序无法启动,因为缺少 cygwin1.dll...在 Eclipse CDT 中

在 Windows 上使用 MingW 的 ccache

编译 ImageMagick:找不到“libwebp”,从 Amazon Linux 2 上的源代码编译

从源代码编译 Vim 8.0

Linux中如何从源代码编译安装程序