2012-08-08 65 views
0

我想在Ubuntu 12.04 32bit版上編譯Systrace-1.6f。我發現下面的錯誤。Systrace 1.6f Compliation error

 
[email protected]:/home/sharma/Desktop/systrace-1.6f# make 
make all-recursive 
make[1]: Entering directory `/home/sharma/Desktop/systrace-1.6f' 
Making all in . 
make[2]: Entering directory `/home/sharma/Desktop/systrace-1.6f' 
gcc -DHAVE_CONFIG_H -I.  -Wall -c systrace-translate.c 
In file included from systrace-translate.c:54:0: 
linux_fcntl.h:90:2: error: unknown type name ‘linux_off_t’ 
linux_fcntl.h:91:2: error: unknown type name ‘linux_off_t’ 
linux_fcntl.h:92:2: error: unknown type name ‘linux_pid_t’ 
linux_fcntl.h:98:9: error: unknown type name ‘linux_loff_t’ 
linux_fcntl.h:99:9: error: unknown type name ‘linux_loff_t’ 
linux_fcntl.h:100:9: error: unknown type name ‘linux_pid_t’ 
make[2]: *** [systrace-translate.o] Error 1 
make[2]: Leaving directory `/home/sharma/Desktop/systrace-1.6f' 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory `/home/sharma/Desktop/systrace-1.6f' 
make: *** [all] Error 2 

請給我一個解決上述錯誤的方法。

回答

0

關於特定程序的這個問題太具體,無法在SO上提出。但是我遇到了同樣的問題,這就是我的發現。

grep是你的幫手!你可以grep -rsli linux_off_t找出它是在linux_types.h。另一個問題是,爲什麼它不工作,但如果你只是想走得更遠,插入以下行

#undef _LINUX_TYPES_H 
#include "linux_types.h" 

某處的linux_fcntl.h開始。

然後你會遇到另一個問題。將所有對cs的引用替換爲xcs。自從我上次使用匯編程序以來,我花了一段時間。所以我不知道這是如何調用這個寄存器這些天,但這是我看到struct user_regs_struct/usr/include/i386-linux-gnu/sys/user.h

即使所有它仍然沒有通過第二次迴歸測試。

systrace沒有更新一段時間,也許與3.x內核不太兼容。但我不是內核專家。

相關問題