- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一辈子都无法编译这段旧代码。我正试图用它来测试客户端的外部漏洞。我让它在 FreeBSD 11 中运行并使用 gcc 进行编译。知道为什么我会收到此错误吗?
int in_cksum(u_short *addr, int len)
{
int sum;
int nleft;
u_short ans;
u_short *w;
sum = 0;
ans = 0;
nleft = len;
w = addr;
while (nleft > 1) {
sum += *w++;
nleft -= 2;
}
if (nleft == 1) {
*(u_char *)(&ans) = *(u_char *)w;
sum += ans;
}
return (sum);
}
完整代码在这里:https://pastebin.com/MGSYycmB
错误:
In file included from ecepass.c:8:0: ecepass.c:72:5: error: expected declaration specifiers or '...' before numeric constant int in_cksum(u_short *addr, int len)
最佳答案
在 PasteBin 上发布的代码中,第 #8 行(和 #24 :d)有语句:#include <machine/in_cksum.h>
因为我不在 Nix 上,所以我在 Internet 上搜索了该文件并找到了 2 个引用:
在它们中(大约 #40+ 行),似乎 in_cksum 是一个预处理器宏:
#define in_cksum(m, len) in_cksum_skip(m, len, 0)
将函数的名称(以及代码中所有引用它的地方)更改为不是宏的名称,或者实际上是另一个已定义的标识符,例如校验和(希望它尚未定义:)),你应该没问题(也可能适用于你的其他功能)。
或者作为替代方案,删除机器/in_cksum.h 包含(直接 和 间接(通过其他嵌套包含)),但这可能会变得有点困难(另外,我没有检查所有代码以查看如果使用了 include 中的其他函数)。
关于c - 无法编译 ecepass.c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44640775/
我一辈子都无法编译这段旧代码。我正试图用它来测试客户端的外部漏洞。我让它在 FreeBSD 11 中运行并使用 gcc 进行编译。知道为什么我会收到此错误吗? int in_cksum(u_short
我是一名优秀的程序员,十分优秀!