我需要为简单的加载器解析ELF可执行文件的可加载部分。找到了很好的“libelf by Example”教程(由J. Koshy撰写),它给出了ELF结构的一个很好的概述。然后它引导我进入ELF Toolchain项目,该项目实现了libelf
ELF处理函数库。
使用这个库的好处在于它封装了ELF格式的变体,使代码更具可移植性和未来证明。但是,我发现为了能够在Ubuntu上构建软件包,我需要安装大量的先决条件。
我尝试通过在libelf目录中运行pmake
来构建libelf部分,但是在缺少头文件时出现了构建错误 - 这显然是由全局make进程自动生成的,并且取决于体系结构。< / p>
我的问题是 - 如何构建ELF工具链的libelf
部分?
答案 0 :(得分:0)
您可以通过在顶级SUBDIR
中注释掉相应的Makefile
行来构建Elftoolchain源树的选定部分。
对于构建libelf
,您应该可以使用以下两个目录:
% grep ^SUBDIR Makefile | head -2
SUBDIR += common
SUBDIR += libelf
注意:在Ubuntu上,您还可以使用GNU libelf,它提供相同API的不同实现,并且似乎有ready-made packages。