【发布时间】:2016-01-29 21:53:02
【问题描述】:
我已经安装了完整的 cygwin 软件包,并且我已经完成了本指南 Link 中提到的步骤 指南是这样的:
...
然后,进入tg目录生成Makefile。
cd tg
./configure
我们需要修补 Makefile 和 loop.c 以在 cygwin 中编译。下载这个补丁然后解压。然后,在 tg 目录下打补丁。
patch -p1 < telegram-cli-cygwin.patch
然后制作
编译完成后会在bin目录下生成telegram-cli.exe。
要运行电报-cli,请键入
bin/telegram-cli -k tg-server.pub
注意:使用 Cygwin 编译的二进制文件应在 Cygwin 终端中运行。
我已成功完成所有步骤,但是当我修补 make 文件和 loop.c 时,它显示:
$ patch -p1 < telegram-cli-cygwin.patch
patching file Makefile
Hunk #1 succeeded at 4 with fuzz 2.
patching file loop.c
Hunk #1 FAILED at 383.
Hunk #2 succeeded at 739 with fuzz 2 (offset 105 lines).
1 out of 2 hunks FAILED -- saving rejects to file loop.c.rej
下一步,当它说“然后制作”时,我尝试使用命令“./configure”,我不知道我这样做是否正确? 并在执行命令后:
bin/telegram-cli -k tg-server.pub
上面写着:
$ bin/telegram-cli -k tg-server.pub
-bash: bin/telegram-cli: No such file or directory
这是正确的,因为没有创建要运行的exe文件。如有任何帮助,我将不胜感激。
【问题讨论】:
-
修补失败。您需要先手动解决被拒绝的补丁。也就是说,打开
loop.rej.c.并手动将该差异块集成到loop.c。 -
感谢您的回答@kaylum。对于“然后制作”步骤,我正确使用命令“./configure”?我对基于 unix 的命令不是很熟悉。
-
configure实际上并不进行构建。它只是准备构建。我特别不知道这段代码。但一般程序是在configure之后运行某种形式的make。但是确切的命令应该包含在构建说明/自述文件中。可能是make all。
标签: c makefile cygwin telegram