【问题标题】:How to Compile telegram-cli in windows by cygwin?如何通过cygwin在windows中编译电报cli?
【发布时间】: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


【解决方案1】:

我在按照@kaylum 提到的配置后手动应用了补丁。它必须在 configure 命令之后,因为 make 文件也必须修补,并且 configure 命令会影响 make 文件。之后,必须执行 make 或 make all 命令并创建 .exe 文件。

【讨论】:

  • 正如@kaylum 提到的,我在配置后手动修补了文件。之后当我尝试make 时,它说没有指定目标,也没有找到makefile。要修补的数据实际上在makefile.in 中。现在我已经打了补丁,但没有创建电报 cli
  • 我尝试复制 makefile.in 并将其重命名为 makefile 并运行 make 命令。 @srcdir@/Makefile.tgl 未找到。但是那个文件就在 tg 目录中!
猜你喜欢
  • 2014-03-24
  • 1970-01-01
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
相关资源
最近更新 更多