kanprin 发表于 2009-1-13 15:26:27

请教在cygwin底下如何给文件打补丁?【恢复】

下面这个网站上的补丁该如何使用呢? 

http://www.nabble.com/-xen-unstable--stubdom:-use-lwip-1.3.0-release-%2B-patch-instead-of-checking-out-from-cvs-td18518268.html



这是一个lwip的patch文件,我把这个文件保存为lwip.patch,然后在cygwin底下用 patch -i lwip.patch 不能成功。 



谢谢关注。

kanprin 发表于 2009-1-13 22:30:42

另外,我怀疑是目录的问题,但不同的目录情况我也试过了,结果还是如此。

kanprin 发表于 2009-1-13 22:28:06

谢谢aozima



是补丁打不成功。

因为环境变量设好了,所以patch是可以找到的。



比如一个简单的patch文件:



src/netif/etharp.c: In function ‘etharp_arp_input’: 

src/netif/etharp.c:708: warning: dereferencing type-punned pointer will break strict-aliasing rules 



Index: src/netif/etharp.c 

=================================================================== 

RCS file: /sources/lwip/lwip/src/netif/etharp.c,v 

retrieving revision 1.148 

diff -u -p -r1.148 etharp.c 

--- src/netif/etharp.c 19 Jun 2008 16:40:59 -0000 1.148 

+++ src/netif/etharp.c 3 Oct 2008 09:39:55 -0000 

@@ -705,7 +705,7 @@ etharp_arp_input(struct netif *netif, st 

       hdr->opcode = htons(ARP_REPLY); 

  

       hdr->dipaddr = hdr->sipaddr; 

-      hdr->sipaddr = *(struct ip_addr2 *)&netif->ip_addr; 

+      memcpy(&hdr->sipaddr, &netif->ip_addr, sizeof(hdr->sipaddr)); 

  

       LWIP_ASSERT("netif->hwaddr_len must be the same as ETHARP_HWADDR_LEN for etharp!", 

                   (netif->hwaddr_len == ETHARP_HWADDR_LEN)); 



-- 







会提示无法找到文件来patch

如这行:@@ -705,7 +705,7 @@ etharp_arp_input(struct netif *netif, st 



待打补丁的源文件etharp.c(文件大小:42K) (原文件名:etharp.txt)



如果方便的话, 不妨试一下。 谢谢。



 

aozima 发表于 2009-1-13 17:50:35

不知道回显是什么?

是打不成功还是找不到程序?

如果是找不到程序可以在:WINAVR的/utils/bin/下有patch.exe 

COPY到cygwin的相应目录再执行即可
页: [1]
查看完整版本: 请教在cygwin底下如何给文件打补丁?【恢复】