【问题标题】:Systrace 1.6f Compliation errorSystrace 1.6f 编译错误
【发布时间】:2012-08-05 02:53:35
【问题描述】:

我正在尝试在 Ubuntu 12.04 32 位版本上编译 Systrace-1.6f。我发现以下错误。

root@sharma-VM:/home/sharma/Desktop/systrace-1.6f# make 使所有递归 make[1]: 进入目录`/home/sharma/Desktop/systrace-1.6f' 全力以赴。 make[2]: 进入目录`/home/sharma/Desktop/systrace-1.6f' gcc -DHAVE_CONFIG_H -I。 -Wall -c systrace-translate.c 在 systrace-translate.c:54:0 包含的文件中: linux_fcntl.h:90:2: 错误: 未知类型名称‘linux_off_t’ linux_fcntl.h:91:2: 错误: 未知类型名称‘linux_off_t’ linux_fcntl.h:92:2: 错误: 未知类型名称‘linux_pid_t’ linux_fcntl.h:98:9: 错误: 未知类型名称‘linux_loff_t’ linux_fcntl.h:99:9: 错误: 未知类型名称‘linux_loff_t’ linux_fcntl.h:100:9: 错误: 未知类型名称‘linux_pid_t’ make[2]: *** [systrace-translate.o] 错误 1 make[2]: 离开目录`/home/sharma/Desktop/systrace-1.6f' make[1]: *** [all-recursive] 错误 1 make[1]: 离开目录`/home/sharma/Desktop/systrace-1.6f' make: *** [全部] 错误 2

请建议我解决上述错误。

【问题讨论】:

    标签: c gcc


    【解决方案1】:

    这个关于特定程序的问题过于具体,无法在 SO 上提出。但是我遇到了同样的问题,这就是我发现它的方式。

    grep 是你的助手!您可以grep -rsli linux_off_t 找出它在linux_types.h 中。另一个问题为什么它不起作用,但是如果您只想更进一步,请插入以下行

    #undef _LINUX_TYPES_H
    #include "linux_types.h"
    

    linux_fcntl.h 开头的某处。

    然后你会遇到另一个问题。将所有对cs 的引用替换为xcs。自从我上次使用汇编程序以来,我花了一段时间。所以我不知道现在这个寄存器是不是这么叫的,但这就是我在/usr/include/i386-linux-gnu/sys/user.h 中看到的struct user_regs_struct

    尽管如此,它仍然没有通过第二次回归测试。

    systrace 已经有一段时间没有更新了,可能与 3.x 内核不完全兼容。不过我不是内核专家。

    【讨论】:

      猜你喜欢
      • 2018-07-14
      • 1970-01-01
      • 2011-09-04
      相关资源
      最近更新 更多