我想编译这个旧漏洞来完成我的练习:https://www.exploit-db.com/exploits/895/。
gcc转载后<asm/page.h>
丢失了。
我在网上搜索,发现asm
中的一些标题已移至:
/usr/src/linux-headers-4.0.0-kali1-common/include/asm-generic/
为了确保源文件具有编译所需的一切,我为上述目录中的每个文件建立了一个链接:
/usr/include/asm
/usr/include/asm-generic
我运行了gcc,这一次,它没有报告丢失<asm/page.h>
但是<linux/compiler.h>
在挖掘之后,我发现了这个:
<asm/page.h>
|
|---#include <asm-generic/getorder.h>
|
|--#include <linux/compiler.h> ==> missing
一个简单的locate linux/compiler.h
告诉我compiler.h
在这里
/usr/src/linux-headers-4.0.0-kali1-common/include/linux/compiler.h
当然,我可以从<linux/compiler.h>
到/usr/include/linux
建立另一个链接。
但我真的不知道有多少人留下了,还有多少链接要做。
有没有办法告诉编译器它必须从新的include
目录中获取标头?
或者我在这里遗漏了什么? 我还是Linux的新手,所以对任何帮助表示赞赏。
注意:我正在使用Kali 2.0 64位并已安装/重新安装build-essential
更新
我尝试了-I
选项:
gcc source.c -m32 -I /usr/src/linux-headers-4.0.0-kali1-common/include/
这一次,gcc说我需要一些来自
的东西/usr/src/linux-headers-4.0.0-kali1-common/arch/x86/include/
(=。=)