从源代码编译 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 文件。我也遵循命令./configure
和make
。命令只生成目标文件。是否可以?
【问题讨论】:
当然有可能。我猜你缺少一些工具。运行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...在 Eclipse CDT 中